我有一個遊戲,顯示一個射手,我試圖設置它,以便當我的按鈕被按下時,用戶然後被允許點擊屏幕上的任何地方,然後一個新的射手將被設置爲點擊發生的地方。我的代碼目前允許我點擊屏幕並設置一個新的射手,無論按鈕是否被按下。有人可以解釋什麼是錯誤的,儘管MouseEvent一旦按下按鈕就會出現在場景中。處理嵌套事件
myButton.setOnMouseClicked(
new EventHandler<MouseEvent>()
{
public void handle(MouseEvent e)
{
gc.setFill(color);
gc.fillRect(0,0,width,height);
scene.setOnMouseClicked(new EventHandler<MouseEvent>()
{
public void handle(MouseEvent e)
{
archer.setX((int)e.getSceneX());
archer.setY((int)e.getSceneY());
archer.drawCharStand(gc);
}
});
}
});
你能說清楚你到底想幹什麼嗎?當用戶按下鍵盤上的一個鍵然後點擊屏幕上的某個地方時,你是否要放置射手?或者你想點擊?第一次鼠標點擊激活了放置動作,第二次點擊實際上放置了射手? – MojoJojo
用戶應該按下按鈕,然後點擊屏幕上的一個點後,射手將被放置在發生點擊的地方。 – theAnon
如何添加一個變量來跟蹤按鈕是否被上一次點擊並將上述處理程序組合成單一方法? – MojoJojo