我坚持在这个阶段,如何将3个塔添加到StackPane以及如何仅使用没有Scene Builder的JavaFX代码移动窗格内的砖块(例如1-2-3)?我会很感激任何答案!
图像:
答案 0 :(得分:4)
我的建议:
你创建了一个班级" Tower"它扩展了类Pane并包含一个磁盘列表。该课程有一个方法"接受"返回布尔值取决于你是否可以放置磁盘。
创建Tower类的3个实例。
然后你创建一个类"磁盘"它扩展了类Rectangle。创建8个不同宽度的实例,并将它们添加到第一个塔,即塔类列表。
每个磁盘都将使用Drag nodes like in a patience/Klondike card game中所述的mouselistener。该机制与您的需求非常相似。
在鼠标监听器的鼠标处理程序中,检查磁盘是否位于塔顶,因此是否可以拖动它。
在鼠标监听器的鼠标释放处理程序中,您只需检查磁盘是否与给定塔相交(请参阅boundsInParent和intersects)。如果确实如此,并且accept方法返回true,则将其删除。如果accept方法返回false,则让它飞回原来的位置。
当Tower拥有所有磁盘时,您已完成。
基本上就是这样。
哦,不要使用StackPane,而是使用Pane。而且你不需要图像。您显示的图片只能由矩形创建。