龙空技术网

python 打地鼠小游戏

多才坦荡的饭团 78

前言:

眼前姐妹们对“打地鼠代码图片素材”大致比较看重,姐妹们都需要学习一些“打地鼠代码图片素材”的相关内容。那么小编在网络上收集了一些关于“打地鼠代码图片素材””的相关内容,希望同学们能喜欢,姐妹们快快来了解一下吧!

给大家分享一段AI自动生成的代码(在这个游戏中,玩家需要在有限时间内打中尽可能多的出现在地图上的地鼠),有兴趣的朋友可以跑一下试试。

注意,在代码的第20,21行,需要先准备两个png格式的图片,分别对应地鼠和地洞,并将图片路径完整准确复制到代码中。

我测试的结果在最下面,确实可以跑起来。学习代码还是从案例中学习比较快

import pygameimport random# 定义颜色WHITE = (255, 255, 255)BLACK = (0, 0, 0)RED = (255, 0, 0)GREEN = (0, 255, 0)BLUE = (0, 0, 255)# 初始化pygamepygame.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 = Falsewhile 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)# 退出pygamepygame.quit()

实际运行起来的效果,供参考

标签: #打地鼠代码图片素材