我有一个名为'玩家'的课程,我在这个游戏中处理动作,升级等等。在主源文件的主循环中,我有键盘事件(左/右)。我希望动作能够知道你的角色何时冒险过去允许它。为了回答这个问题,我放了两个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的值,则精灵会从屏幕上消失。
任何帮助表示感谢。
答案 0 :(得分:2)
Player.move(640,0);
您将播放器在X轴上移动640像素。这意味着当玩家到达x > 1279
时,即在你的世界的右端,你将玩家进一步向右移动。所以它就消失了。
您可能希望在此处使用setPosition
代替move
,或者只是不移动播放器等...