0

我一直在学习 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

显然这不起作用,任何人都可以提出一种方法来实现这一点吗?如果需要,我可以提供更多信息。

4

0 回答 0