如何解决在JavaFX中使用WASD移动项目
我发现了这种奇怪的解决方法,但我不知道为什么它无法正常工作。这里的代码`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 举报,一经查实,本站将立刻删除。