【发布时间】:2016-07-13 11:56:20
【问题描述】:
我正在编写一个简单的游戏,但我遇到了下一个问题:
if pidgeon.rect.y > 360:
pygame.mixer.music.stop()
pidgeon.electrocute()
electrocute.play()
time.sleep(2)
showGameOverScreen(score, total_score)
不起作用的方法是:
pidgeon.electrocute()
接下来应该做什么:
def electrocute(self):
self.image=pygame.image.load(r"electrocuted_pidgeon.png").convert()
self.image.set_colorkey((255,255,255))
但不是改变 pidgeon 图像,而是播放电击声音。它只是等待 2 秒,同时播放电刑声音,然后进入游戏结束屏幕。为什么它不改变图像?
我已经在代码的其他部分尝试过(例如,当按下条形空间时它应该改变,并且确实如此),所以图像可以改变。
我在 python 2.7 中使用 pygame,以防万一。
【问题讨论】:
-
我不熟悉 pygame(一点也不),但我认为调用
time.sleep可能是个坏主意。例如,请参阅this question。 -
谢谢,我会寻找替代方案。
-
在
if语句之前定义你的方法并尝试,并尝试在print("something")等方法中使用小输出 -
该方法是之前定义的,在 Pidgeon 类内部。
-
你必须先创建一个类的实例,然后才能调用类内部的方法。我将添加一个小例子
标签: python python-2.7 pygame