0

我有一个名为“玩家”的类,我在其中处理我正在尝试创建的游戏中的动作、升级等。在主源文件的主循环中,我有键盘事件(左/右)。我希望动作能够知道你的角色何时冒险越过允许的位置。为了回答这个问题,我放置了两个 if 语句。

我只对这个 if 语句有疑问:

else if (sf::Keyboard::IsKeyPressed(sf::Keyboard::Right)) {
            if (Player.getX() > 1279) {
                Player.move(640,0);
            }
            Player.move(0.1,0);
        }

没有编译问题。唯一的问题是,与另一个 if 语句不同,这个语句不会将精灵返回到想要的位置。如果我将 if 语句降低到 1000 左右,精灵就会从屏幕上消失。

任何帮助表示赞赏。

4

1 回答 1

2
Player.move(640,0);

您在 X 轴上移动播放器 640 像素。这意味着当玩家到达 时x > 1279,即在您世界的右端,您将玩家移动到更右侧。所以它消失了。

您可能想使用setPosition而不是move此处,或者根本不移动播放器等...

于 2012-09-06T08:26:16.840 回答