给大家分享一段AI自动生成的代码(在这个游戏中,玩家需要在有限时间内打中尽可能多的出现在地图上的地鼠),有兴趣的朋友可以跑一下试试。
注意,在代码的第20,21行,需要先准备两个png格式的图片,分别对应地鼠和地洞,并将图片路径完整准确复制到代码中。
我测试的结果在最下面,确实可以跑起来。学习代码还是从案例中学习比较快
import pygame import random # 定义颜色 WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) GREEN = (0, 255, 0) BLUE = (0, 0, 255) # 初始化pygame pygame.init() # 设置游戏窗口 size = (700, 500) screen = pygame.display.set_mode(size) pygame.display.set_caption("打地鼠") # 加载图片 hole_img = pygame.image.load(r"C:\Users\gong\Desktop\3322.png")#地鼠 hammer_img = pygame.image.load(r"C:\Users\gong\Desktop\2233.png")#地洞 # 设置字体 font = pygame.font.SysFont(None, 25) # 设置时间 clock = pygame.time.Clock() FPS = 60 # 定义地鼠 class Mole(pygame.sprite.Sprite): def __init__(self, pos): super().__init__() self.image = hole_img self.rect = self.image.get_rect() self.rect.x, self.rect.y = pos self.show_mole = False self.hide_time = 0 self.points = 0 def update(self): if not self.show_mole and pygame.time.get_ticks() - self.hide_time > random.randint(1000, 5000): self.show_mole = True self.image = pygame.transform.scale(hammer_img, (70, 70)) self.image.set_colorkey(WHITE) self.show_time = pygame.time.get_ticks() elif self.show_mole and pygame.time.get_ticks() - self.show_time > 500: self.show_mole = False self.image = hole_img self.hide_time = pygame.time.get_ticks() def hit(self): if self.show_mole: self.show_mole = False self.image = hole_img self.hide_time = pygame.time.get_ticks() self.points += 1 # 定义地鼠群 all_moles = pygame.sprite.Group() for i in range(10): mole = Mole((random.randint(0, 630), random.randint(0, 430))) all_moles.add(mole) # 游戏循环 done = False while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True elif event.type == pygame.MOUSEBUTTONDOWN: for mole in all_moles: if mole.rect.collidepoint(event.pos): mole.hit() screen.fill(GREEN) # 更新地鼠 all_moles.update() # 绘制地鼠 all_moles.draw(screen) # 绘制得分 text = font.render("得分: " + str(sum([mole.points for mole in all_moles])), True, BLACK) screen.blit(text, (10, 10)) # 刷新屏幕 pygame.display.flip() # 控制帧率 clock.tick(FPS) # 退出pygame pygame.quit()
实际运行起来的效果,供参考