使用pygame.time.set_timer

时间:2013-12-01 23:04:55

标签: python pygame

我正在用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

1 个答案:

答案 0 :(得分:5)

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

SPAWNASTEROID = USEREVENT + 1

然后你可以这样排队:

pygame.time.set_timer(SPAWNASTEROID, 100)

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

elif event.type == SPAWNASTEROID:
    if len(asteroids) < 10:
        asteroids.append(Asteroid())

编辑(示例代码):

Custom event types declared

set_timer

Checking event type