我正在用Pygame和Python制作游戏,这是一种小行星。每10秒钟,如果屏幕上一次不超过10个小游戏,则该游戏应制作另一个小行星。当我查看有关如何实现它的示例代码时,我看到我必须在代码中使用USEREVENT。我可以用功能替换它吗?例如:
def testfunc():
print "Test"
pygame.time.set_timer(testfunc, 100)
如果我不能以这种方式使用该功能,我将如何将USEREVENT与此代码一起使用?
由于
编辑:Python Timer对象是否可以使用Pygame而不是使用Pygame set_timer()? http://docs.python.org/2/library/threading.html#timer-objects答案 0 :(得分:5)
查看文档,似乎事件不是函数,而是表示事件类型的数字ID。因此,您希望声明自己的事件类型,如下所示:
SPAWNASTEROID = USEREVENT + 1
然后你可以这样排队:
pygame.time.set_timer(SPAWNASTEROID, 100)
最后为主循环添加一个处理程序,就像按钮点击和诸如此类的东西:
elif event.type == SPAWNASTEROID:
if len(asteroids) < 10:
asteroids.append(Asteroid())
编辑(示例代码):