为了账号安全,请及时绑定邮箱和手机立即绑定

switch 语句,一次只使用一种情况

switch 语句,一次只使用一种情况

一只斗牛犬 2022-07-14 16:18:02
我试图根据按下的键向左或向右平移一个正方形“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 的经验,所以很遗憾我无法详细说明。


查看完整回答
反对 回复 2022-07-14
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信