我試圖根據按下的鍵向左或向右平移一個正方形“p”5 個單位。問題是,當按下“右”或“左”時,它會朝那個方向平移 5 個單位,但是當我再次按下時,我無法移動,我必須再次按下“左”才能再次向右移動,所以我永遠無法到達任何地方。有人知道為什么嗎? Task PlyThread=new Task() { @Override protected Object call() throws Exception { myScene.setOnKeyPressed(event -> { switch (event.getCode()){ //case UP: p.setTranslateY(((p.getY())-5)) ; break; case LEFT: p.setTranslateX(((p.getX())-5)) ; break; case RIGHT: p.setTranslateX(((p.getX())+5)) ;break; } }); return null; } };new Thread(PlyThread).start();
1 回答

慕哥9229398
TA貢獻1877條經驗 獲得超6個贊
好的,我假設“矩形”是javafx.scene.shape.Rectangle
. 在這種情況下setTranslateX()
,只修改變換矩陣,不改變矩形坐標 X。屬性 X 的值保持不變,下一次調用與setTranslateX(getX()+5)
之前的工作完全相同。
您需要使用翻譯或坐標,即使用 setTranslateX()
/getTranslateX()
或setX()
/ getX()
。
除了在屏幕上移動矩形之外,這兩種選擇可能會產生其他后果,但我沒有使用 JavaFX 的經驗,所以很遺憾我無法詳細說明。
添加回答
舉報
0/150
提交
取消