需要一些游戏代码(JavaFX)的帮助

时间:2015-11-21 21:56:13

标签: java javafx javafx-2 javafx-8

这个问题有点复杂,这就是标题有点模糊的原因。

所以我在JavaFX中制作一个自上而下的RPG并需要一些建议。我的主要游戏窗口类是StackPane,并通过getChildren()添加所有图形(ImageView).add(imageviewnode)。大多数人都应该知道JavaFX容器使用ObservableList<>对于他们的容器(即getChildren()返回一个ObservableList<>)。我的问题在于此列表的排序。

所以为了给你一个想法,有一个z值为0的底层(ImageView),一个z值为1的水层,一个z值为2的地面层,所有在地图上移动的字符z值介于100-199之间,一个视差层(显示在字符上方的地图),z值为200,蜡烛灯和z值为300的东西的光层。

以下图为例。 enter image description here

所以,我遇到的问题是getChildren()中的z排序。起初我想可能在每个特定的z值上添加每个图像都会起作用,例如:getChildren()。add(200,parallax),但这会引发错误,因为ObservableList的大小超出范围。我遇到的另一个问题是所有角色z放置。如果我在地图上有玩家并且随机NPC如果玩家在NPC前面(更大的Y值),则玩家必须位于该NPC前面的顶部。如果玩家走在NPC后面(较小的Y值),玩家需要回到该NPC的后面。 toFront()和toBack()不起作用,因为如果我在播放器上说toFront(),它就会把他置于一切之上。我需要一种方法来修改ObservableList中每个imageview的索引。我是否以错误的方式解决这个问题?如果是这样,那会是更好的方法吗?如果我以正确的方式处理它而不考虑正确的技术,请告诉我。

谢谢,菲尔。

0 个答案:

没有答案