pygame打地鼠游戏代码
时间: 2023-11-12 15:08:37 浏览: 70
以下是一个简单的 pygame 打地鼠游戏代码,你可以根据自己的需求进行修改和完善。
```python
import pygame
import random
# 初始化pygame
pygame.init()
# 设置窗口大小
window_size = (800, 600)
screen = pygame.display.set_mode(window_size)
pygame.display.set_caption("打地鼠")
# 加载图片资源
bg_img = pygame.image.load("bg.jpg").convert_alpha()
mole_img = pygame.image.load("mole.png").convert_alpha()
# 设置字体
font = pygame.font.Font(None, 36)
# 定义变量
score = 0
time = 30
mole_pos = (0, 0)
mole_speed = 5
mole_show = False
timer_event = pygame.USEREVENT + 1
# 定义定时器事件
pygame.time.set_timer(timer_event, 1000)
# 游戏循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
elif event.type == pygame.MOUSEBUTTONDOWN:
if mole_show:
if mole_rect.collidepoint(event.pos):
score += 1
mole_show = False
elif event.type == timer_event:
time -= 1
if time == 0:
pygame.time.set_timer(timer_event, 0)
if not mole_show:
mole_pos = (random.randint(0, window_size[0]-mole_img.get_width()),
random.randint(0, window_size[1]-mole_img.get_height()))
mole_show = True
# 绘制背景
screen.blit(bg_img, (0, 0))
# 绘制地鼠
if mole_show:
mole_pos = (mole_pos[0], mole_pos[1]+mole_speed)
if mole_pos[1] > window_size[1]-mole_img.get_height():
mole_show = False
else:
mole_rect = pygame.Rect(mole_pos[0], mole_pos[1],
mole_img.get_width(), mole_img.get_height())
screen.blit(mole_img, mole_rect)
# 绘制分数和时间
score_text = font.render("Score: " + str(score), True, (255, 255, 255))
screen.blit(score_text, (10, 10))
time_text = font.render("Time: " + str(time), True, (255, 255, 255))
screen.blit(time_text, (window_size[0]-time_text.get_width()-10, 10))
# 更新屏幕
pygame.display.update()
```
这个游戏主要通过定时器事件来控制地鼠的出现和消失。当定时器事件触发时,生成一个随机的地鼠位置,并将地鼠的显示状态设置为 True。然后在游戏循环中,不断判断地鼠是否显示,如果显示则让地鼠向下移动,直到超出窗口范围或被打中。同时还要不断更新分数和时间的显示。