簡體   English   中英

在JavaFX中跟蹤對象的位置

[英]Tracking location of an object in javafx

我正在使用Javafx制作自上而下的滾動游戲,玩家可以在其中左右移動。 我正在嘗試使玩家能夠發射彈丸,但到目前為止,無論何時發射它們,它們都只能從玩家開始的位置即中心移動。 即使我向左或向右移動,彈丸仍然是從中心發出的。 彈丸和播放器都是Circle對象,我使用Player.getCenterX()方法隨時查找播放器在哪里,然后將彈丸的起始位置設置為該位置。

我用這條線向左或向右移動播放器

myPlayer.setTranslateX(myPlayer.getTranslateX()  + myPlayer.getSpeed())

某事不起作用。 .setTranslateX()方法不會更改播放器的中心位置嗎? 我該如何解決?

就像您說的那樣,如果您想向左或向右移動,那么使用Player.getcenterX()將提供您指定的中心的向前和向后更改位置,那么您可以在javafx中使用Point2D或Point3D包。 它將快速輕松地處理位置並且易於理解。 如果您的游戲是2D或3D游戲,則結束。 嘗試使用這些參考。

http://docs.oracle.com/javase/8/javafx/api/javafx/geometry/Point2D.html

通過更新圓的中心位置來重新定位圓,而不是平移該圓。

例如:

myPlayer.setCenterX(myPlayer.getCenterX() + myPlayer.getSpeed())

然后,您始終可以通過調用以下命令確定圓心的x位置:

myPlayer.getCenterX();

平移通常用於臨時過渡和動畫,但是您實際上並沒有這樣做,因為您是在永久移動播放器,所以重定位是一種更好的方法。 如果您確實堅持平移而不是按照我的建議重新定位中心,那么請閱讀Node文檔中的邊界矩形信息,尤其是嘗試了解boundsInParent

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM