【问题标题】:C++/SFML Positioning Sprite IssueC++/SFML 定位精灵问题
【发布时间】:2012-09-06 08:15:46
【问题描述】:

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

任何帮助表示赞赏。

【问题讨论】:

    标签: c++ sfml


    【解决方案1】:
    Player.move(640,0);
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 2012-05-09
      • 2019-03-10
      相关资源
      最近更新 更多