python - pygame俄罗斯方块发烧模式添加计时器
问题描述
i = 1 ## fever_interval = 3
if score > i * 100:
pygame.time.set_timer(pygame.USEREVENT, 5)
mino = randint(1, 1)
next_mino = randint(1, 1)
next_fever = (i + fever_interval) * fever_score # 피버모드 점수 표시
# fever time
if blink:
screen.blit(pygame.transform.scale(ui_variables.fever_image,
(int(SCREEN_WIDTH * 0.5), int(SCREEN_HEIGHT * 0.2))),
(SCREEN_WIDTH * 0.1, SCREEN_HEIGHT * 0.1))
blink = False
else:
blink = True
i += fever_interval
fever_mode
如果您达到特定分数,这是我的代码更改为 5 秒,所以我做了一些计时器 EX)但是这些pygame.time.get_ticks()
东西pygame.time.set_timer()
对我不起作用。我该怎么做才能解决它..
解决方案
的时间参数pygame.time.set_timer
必须以毫秒而不是秒为单位指定(5000 毫秒 = 5 秒):
pygame.time.set_timer(pygame.USEREVENT, 5)
pygame.time.set_timer(pygame.USEREVENT, 5000)
最小的例子:闪烁的物体
import pygame
pygame.init()
window = pygame.display.set_mode((200, 200))
pygame.time.set_timer(pygame.USEREVENT, 500)
blink = True
run = True
clock = pygame.time.Clock()
while run:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
elif event.type == pygame.USEREVENT:
blink = not blink
window.fill(0)
if blink:
pygame.draw.circle(window, (255, 0, 0), (100, 100), 80)
pygame.display.flip()
pygame.quit()
exit()
推荐阅读
- python - 如何获得绘图中两条线的交点?
- laravel - 修改 Laravel Passport 令牌过期检查 (JWT)
- trino - 将节点添加到 Trino 集群
- reactjs - MUI 选择自定义 MenuItem 无法正常工作
- javascript - 无法在点击事件中插入函数
- java - “String.substring(int,int)行:不可用”导致错误
- mysql - mysql如果中间出现错误则回滚整个过程
- c# - C# XElement 如何按特定顺序添加不同的属性?
- google-sheets - 将 googlesheet 与 google 日历同步
- css - 在 R Markdown 中将 DT Datatble 更改为 RTL,而不改变其余表的方向