我一直在学习 java 中的 2d 侧滚动条教程,并且已经掌握了基础知识,我稍微更改了代码以使其始终移动瓷砖和背景,这符合我的预期。相关代码如下:
在字符类中:
if (speedX < 0) {
centerX += speedX;
}
if (speedX == 0 || speedX < 0) {
bg1.setSpeedX(0);
bg2.setSpeedX(0);
}
if (centerX <= 350 && speedX > 0) {
centerX = centerX + speedX ;
}
if (speedX > 0 && centerX > 350) {
bg1.setSpeedX(-MOVESPEED / 4);
bg2.setSpeedX(-MOVESPEED / 4);
}
在瓷砖类中:
speedX = bg.getSpeedX() * 3;
tileX = tileX + speedX - 4;
我想要一种方法,这样如果角色向左移动,瓷砖+背景移动得更慢。我在变量范围和 setter/getter 方面遇到问题。在主游戏类中,我有代码:
case
KeyEvent.VK_LEFT:
character.moveLeft();
character.setMovingLeft(true);
break;
我如何在 tile 类中包含一个 if 语句,该语句读取角色是否向左移动(由主游戏类中的 keyPressed 事件确定)并相应地调整图块的速度?
我想写一些大意为:
if (setMovingLeft = true){
speedX = bg.getSpeedX() * 3;
tileX = tileX + speedX - 1; << changed from - 4
显然这不起作用,任何人都可以提出一种方法来实现这一点吗?如果需要,我可以提供更多信息。