使用pygame.time.set_timer

Joe*_*ail 1 python pygame

我正在用Pygame和Python制作游戏,这是一种小行星.每10秒钟,如果屏幕上一次不超过10个小游戏,则该游戏应制作另一个小行星.当我查看有关如何实现它的示例代码时,我看到我必须在代码中使用USEREVENT.我可以用功能替换它吗?例如:

    def testfunc():
      print "Test"

    pygame.time.set_timer(testfunc, 100)
Run Code Online (Sandbox Code Playgroud)

如果我不能以这种方式使用该函数,我将如何使用此代码的USEREVENT?

谢谢

编辑:Python Timer对象可以使用Pygame而不是使用Pygame set_timer()吗? http://docs.python.org/2/library/threading.html#timer-objects

kaz*_*tar 5

查看文档,似乎事件不是函数,而是表示事件类型的数字ID.因此,您想要声明自己的事件类型,如下所示:

SPAWNASTEROID = USEREVENT + 1

然后你可以像这样排队:

pygame.time.set_timer(SPAWNASTEROID, 100)
Run Code Online (Sandbox Code Playgroud)

最后为主循环添加一个处理程序,就像按钮点击和诸如此类:

elif event.type == SPAWNASTEROID:
    if len(asteroids) < 10:
        asteroids.append(Asteroid())
Run Code Online (Sandbox Code Playgroud)

编辑(示例代码):

声明自定义事件类型

SET_TIMER

检查事件类型