问题描述
我发现了这种奇怪的解决方法,但我不知道为什么它无法正常工作。这里的代码`Scene root = new Scene(layout,1000,1000);
root.addEventHandler(KeyEvent.KEY_pressed,(KeyEvent event) -> {
if (event.getCode().equals(KeyCode.W))
{
user.move("up");
}
if (event.getCode().equals(KeyCode.A))
{
user.move("left");
}
if (event.getCode().equals(KeyCode.S))
{
user.move("down");
}
if (event.getCode().equals(KeyCode.D))
{
user.move("right");
}
});`
这是“移动”方法。这很奇怪,请看数字:
public void move(String direction) {
switch (direction) {
case "up":
this.setCenterY(this.getCenterY() - 20);
case "down":
this.setCenterY(this.getCenterY() + 10);
this.setCenterX(this.getCenterX() - 10);
case "right":
this.setCenterX(this.getCenterX() + 20);
case "left":
this.setCenterX(this.getCenterX() - 10);
}
}
如您所见,“向下”方向也沿X轴移动,“向上”方向变为20像素而不是10像素,这是我可以使对象沿每个方向正确移动10像素的唯一方法。这是为什么?为什么在每个值中加上10会使我的对象移动得异常?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)