足球比赛,需要计时器帮助吗

2024-03-29 06:59:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一场足球比赛,我想让球员只有10秒的时间来结束比赛,否则比赛就结束了

我该怎么做


Tags: 时间球员足球比赛
3条回答

function{}获取开始时间。这将以毫秒为单位显示当前时间(自pygame启动以来)。把这个放在某个地方

MAX_EVADE_TIME    = 10000   # milliseconds
player_start_time = pygame.time.get_ticks()

然后在主循环中,不断查看时间,并计算出是否已超过限制

while not exiting:

    ...

    time_now = pygame.time.get_ticks()

    # is the time limit used-up?
    if ( time_now > player_start_time + MAX_EVADE_TIME ):
        doGameOver()  # or whtever

可以使用时间模块(单击here查看文档)。 这里有一个程序,它会打印“我是pygame中任何你做的事情的替代者!”直到启动后5秒

import time
start = time.time()
seconds = 5
while not time.time() >= start + seconds:
    print("I'm a replacement for whatever you do in pygame!")
print(str(seconds)," seconds is up!")

我建议使用pygame.time.set_timer()和pygames事件机制,因为您的游戏中可能已经有了一个事件处理循环。请参阅设置计时器文档here

你可以这样做:

pygame.time.set_timer(pygame.USEREVENT, 10000)

要启动该程序,需要10秒的计时器,当pygame.USEREVENT启动时,该计时器将触发pygame.USEREVENT。通过添加如下测试,可以在事件循环中观察该事件:

if event.type == pygame.USEREVENT:
    # Countdown expired

我怀疑您是否需要它,但是如果您需要多个计时器并且需要能够区分它们,您可以创建一个具有属性的事件,您可以将该属性设置为不同的值来跟踪它们。大概是这样的:

my_event = pygame.event.Event(pygame.USEREVENT, {"tracker": "gameover"})
pygame.time.set_timer(my_event , 2000)

相关问题 更多 >