我正在尝试通过实施一个小卡片游戏来学习javafx。我可以通过处理mousePressed-和mouseDragged-events来使卡片移动。
在鼠标按下时,我存储拖动的原点,在鼠标拖动事件中,我将x和y转换应用于拖动的卡片。像魅力一样,没有任何延迟。 (我
我的问题是确定拖动卡下的另一张卡(节点)。你有没有意识到s.th.像这样?
我试图避免手动计算来检查交叉点。
答案 0 :(得分:2)
有一种称为“完全按下 - 释放 - 释放手势”的机制。详细信息记录在MouseEvent和MouseDragEvent类中。
基本上,在拖动的卡上注册一个onDragDetected事件处理程序并在里面进行两次调用: card.startFullDrag(),它可以将MouseDragEvents传递给手势目标 card.setMouseTransparent(),它通过拖动的节点选择手势目标
现在,拖动事件将继续传递到卡上,并且MouseDragEvents将传递到在其下方拾取的节点。不要忘记在手势结束后再切换mouseTransparent标志。