C++/SFML定位精灵问题

C++/SFML Positioning Sprite Issue

本文关键字:精灵 问题 定位 SFML C++      更新时间:2023-10-16

我有一个名为"Player"的类,在我试图创建的游戏中,我可以处理移动、升级等。在主源文件的主循环中,我有键盘事件(左/右)。我希望动作能够知道你的角色何时冒险经过允许的地方。为了回答这个问题,我放置了两个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左右,精灵就会从屏幕上消失。

感谢您的帮助。

Player.move(640,0);

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

你可能想在这里使用setPosition而不是move,或者简单地不移动播放器,等等…