如果声明使pygame sprite不可见

时间:2015-02-15 17:35:34

标签: pygame sprite

我正在做一个非常简单的游戏,表面上有硬币,黑棋子(现在是玩家)和计算机AI,现在是企鹅。昨晚我把我实施的所有东西都搞定了。我说已实施,因为我甚至没有开始实施一个结束场景/条件。昨晚我很高兴我让人工智能工作......太好了。在这个小范例中,赢得胜利是不可能的。我决定取消AI的对角线转弯能力。我通过将一个if语句变成elif来做到这一点:

# 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 个答案:

答案 0 :(得分:0)

是的,我很笨。

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