【问题标题】:Resetting time.clock()重置 time.clock()
【发布时间】:2013-06-06 12:06:54
【问题描述】:

我正在编写一个基本游戏,您可以使用鼠标来躲避星星,但我无法让某个部分正常工作。

我正在努力让你在玩 10 秒后击败舞台,如果你输了,10 秒计时器会重置。

这是我正在尝试的:

def time_pass(self):
        self.time_passed = time.clock()
        print self.time_passed
    if self.time_passed > 10:
        self.state = 3

这个方法只运行if self.state == 2是主游戏,if self.state == 3你赢了,输屏是if self.state == 0。但是发生的情况是我运行游戏,当我点击播放时,它运行 self.state 2 并启动计时器,如果我输掉了计时器继续运行。因此,当我返回主屏幕并再次按播放时,它会从计时器停止的地方开始,而不是重新设置。

如果您想查看完整的游戏代码:

Star Dodger Git

提前致谢。

-ChristianCareaga

【问题讨论】:

    标签: python timer pygame clock


    【解决方案1】:

    当你设置self.state = 2时,节省时间说start_time
    self.time_passed > 10: 更改为 if self.time_passed > (start_time + 10):
    游戏将在开始后结束10
    IOW,不要重置时钟。

    【讨论】:

    • 好吧,我尝试了一些类似的事情,但我似乎无法得到它,我试图分配 start_time = time.clock() 而不循环它,但我不知道如果循环 start_time 将永远 = @ 987654328@
    • 你在start_time = time.clock()旁边做if self.player_r.colliderect(... self.state = 2吗?
    • Yessss 我做得很好,谢谢!!
    • 我使用pygame.time.get_ticks(),它给出了毫秒。所以如果,now - last >= cooldown: do_stuff()
    猜你喜欢
    • 2011-02-09
    • 2013-10-24
    • 2015-04-07
    • 2017-01-11
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    相关资源
    最近更新 更多