C ++ / SFML定位精灵问题

时间:2012-09-06 08:15:47

标签: c++ sfml

我有一个名为'玩家'的课程,我在这个游戏中处理动作,升级等等。在主源文件的主循环中,我有键盘事件(左/右)。我希望动作能够知道你的角色何时冒险过去允许它。为了回答这个问题,我放了两个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的值,则精灵会从屏幕上消失。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

Player.move(640,0);

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

您可能希望在此处使用setPosition代替move,或者只是不移动播放器等...