【问题标题】:If statement making pygame sprite invisibleif 语句使 pygame sprite 不可见
【发布时间】:2015-02-16 05:58:50
【问题描述】:

我正在制作一个非常简单的游戏,它的表面上有硬币,玩家是黑色方块(目前),计算机 AI 是目前的企鹅。昨晚我得到了我实施的一切工作。我说已实施是因为我什至还没有开始实施残局场景/条件。昨晚我很高兴我让 AI 工作了……太好了。在这个小范式中是不可能获胜的。我决定取消 AI 进行对角转弯的能力。我通过在 elif 中添加一个 if 语句来做到这一点:

# Uncomment if you want the AI to be able to go diagonal
'''def hunt(self, player_xy):
    if player_xy[0] > self.get_x():
        self.set_x(self.get_x() + 3)
    elif player_xy[0] < self.get_x():
        self.set_x(self.get_x() - 3)

    if player_xy[1] > self.get_y():
        self.set_y(self.get_y() + 3)
    elif player_xy[1] < self.get_y():
        self.set_y(self.get_y() - 3) '''

def hunt(self, player_xy):
    if player_xy[0] > self.get_x():
        self.set_x(self.get_x() + 3)
    elif player_xy[0] < self.get_x():
        self.set_x(self.get_x() - 3)
    elif player_xy[1] > self.get_y():
        self.set_y(self.get_y() + 3)
    elif player_xy[1] < self.get_y():
        self.set_y(self.get_y() - 3)

我在背景上有一个标签,告诉我 AI 在哪里,所以我可以跟踪它。当 if 语句仍然是 if 语句时,我可以看到标签移动,我可以看到精灵移动。当我将一行更改为 elif 时,我仍然看到标签移动(因此精灵正在移动),但我在任何地方都看不到精灵。说真的,1 行。

对为什么会发生这种情况或我应该怎么做有什么想法吗?我可以发布更多代码,但由于我将其隔离为 1 行,我认为它不会有帮助。

【问题讨论】:

    标签: pygame sprite


    【解决方案1】:

    是的,我很笨。

    精灵不是隐形的,它只是从屏幕上加载出来,需要很长时间才能看到它,因为它不能再对角移动。它横向移动,直到它与我对齐,然后它垂直移动。有道理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多