我正在做一个JavaFX应用程序,并且我有一个具有多个形状(圆形和矩形)的板添加到窗格。我不想让圆圈在矩形中移动。JavaFX:防止形状拖过另一个形状
允许使用鼠标事件(OnMousePressed,Dragged,Released)拖动圆,而矩形不允许移动。
我使用此代码来检测我的圆与矩形碰撞的时间。
private void checkIntersection(Shape block) {
boolean collisionDetected = false;
for (Shape static_bloc : nodes) {
if (static_bloc != block) {
Shape intersect = Shape.intersect(block, static_bloc);
if (intersect.getBoundsInLocal().getWidth() != -1) {
collisionDetected = true;
}
}
}
if (collisionDetected) {
System.out.println("Collision detected");
} else {
System.out.println("Collision non deteted");
}
}
我需要做的是让我的矩形不可能在拖动圆的同时拖动。我不想将形状发回他的初始位置。 有没有办法做到这一点使用相交或我错过了什么?
@jewelsea你连接导致无处。 – Sedrick
@Sedrick,谢谢,用正确的链接创建了一条新评论。也许学习[Oracle Paper doll](https://docs.oracle.com/javase/8/javafx/events-tutorial/paper-doll.htm)拖放示例。虽然我猜测它完全不适合你的用例。我认为你的问题有点太广泛,不能像书面答复。例如,将圆形拖到矩形上时会发生什么,它是否会落在矩形的边缘?它会回到原来的位置吗? – jewelsea
@jewelsea谢谢你的帮助,我会检查一下这项研究。我不希望我的圆形形状进入矩形形状,所以理论上我不应该让我的应用程序将圆形拖到矩形上(它不应该是可能的)。我不想回到原来的位置,也不想回到原来的位置,我只是想阻止它,并让我拖着静止的方向,如果我愿意的话可以绕着矩形走。 –