如何使用javafx2同时在同一个精灵的屏幕上拥有多个实例

时间:2014-09-24 13:00:28

标签: object javafx sprite

我是编程方面的新手,尤其是javafx。 我正在写一个游戏,我正在尝试同时想象同一个精灵(一种子弹)的更多实例。它翻译和旋转。 在我的尝试中,程序不起作用或正常按下'fire',子弹运行但是当按下'fire'多次时,每次'old'bullet'消失并且另一颗子弹开始。屏幕上只有1个子弹同时出现。我有什么办法在屏幕上有更多的子弹,每次按下“火”时都只有一颗子弹? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

您可能尝试将多个相同的节点多次添加到场景图中。

来自JavaFX Node documentation

  

在场景图中的任何位置最多可以出现一次节点。具体而言,节点在以下所有方面中必须出现不超过一次:作为Scene的根节点,Parent的子ObservableList,或作为Node的剪辑。

     

场景图不能有循环。如果节点是树中自身的祖先,则考虑到上面提到的组内容ObservableList,Parent children ObservableList和Node剪辑关系,将存在一个循环。

     

如果程序将子节点添加到Parent(包括Group,Region等)并且该节点已经是不同Parent的子节点或Scene的根节点,则该节点将自动(并静默地)从其节点中删除前父母。如果程序试图以违反上述规则的任何其他方式修改场景图,则抛出异常,忽略修改尝试并将场景图恢复到其先前状态。

     

可以重新排列场景图的结构,例如,将子树从场景图中的一个位置移动到另一个位置。为了做到这一点,通常会在将子树插入新位置之前从其旧位置删除子树。但是,如果应用程序没有明确删除子树,则会自动删除子树,如上所述。

以下是单个场景中多个动画图像的示例。在该示例中,使用多个节点,每个节点共享相同的图像数据。因为Image不是Node,所以可以毫无问题地共享它: