pygame编写打地鼠游戏(7)

该博客介绍了如何使用pygame库来开发一款打地鼠游戏,重点在于如何避免土拨鼠在同一位置出现的问题,同时提示读者需要自行调整图片路径。
摘要由CSDN通过智能技术生成

主要变更是添加土拨鼠,要注意添加时位置不能重复
图片位置还是大家自己去改,图片位置在第277行
self.marmot_image = pygame.image.load(‘spiders/marmot.png’)
在这里插入图片描述
在这里插入图片描述

'''打地鼠游戏v1.6'''
'''
1. 创建土拨鼠类并加载土拨鼠图片
2. 实现土拨鼠随机出现在洞口
'''
# 导包导库导模块
import pygame, sys
from pygame import *
from math import sin, cos, radians
from datetime import datetime
import time
from random import randint, choice

# 游戏初始化
pygame.init()
# 常量
SCREENWIDTH = 800
SCREENHEIGHT = 800
SCREENSIZE = (SCREENWIDTH, SCREENHEIGHT)
CAPTION = '浣熊打地鼠v1.6'
# 颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
LIGHT_BLUE = (0, 75, 255)
YELLOW = (255, 255, 0)
RED = (255, 0, 0)
PURPLE = (255, 0, 255)


# 创建主逻辑类
class MainGame(object):
    '创建主逻辑类,包括窗口,游戏开始与结束的方法和事件的获取与相应'
    # 创建主窗口
    window = pygame.display.set_mode(SCREENSIZE)
    # 设置标题
    pygame.display.set_caption(CAPTION)
    # 设置背景图案
    background_image = pygame.image.load('spiders/background.png')

    def __init__(self):
        '初始成员变量'
        pass

    def response_event(self):
        '提供事件获取与响应的方法'
        # 获取事件列表
        for event in pygame.event.get():
            # 窗口右上角退出方法
            if event.type == QUIT:
                self.end_game()
            # 获取键盘按键
            keys = pygame.key.get_pressed()
            # 按ESC键退出游戏
            if keys[K_ESCAPE]:
                self.end_game()
            # 令锤子跟随鼠标移动,且保持鼠标总在锤子柄上
            if event.type == MOUSEMOTION:
                hammer.h_x, hammer.h_y = event.pos
                hammer.h_x -= hammer.h_width * 0.8
                hammer.h_y -= hammer.h_height * 0.8
                hammer.h_pos = (hammer.h_x, hammer.h_y)

    def start_game(self):
        '''游戏主循环'''
        while True:
            # 用黑色刷新窗口
            mainGame.window.blit(mainGame.background_image, (0, 0))
            # 获取处理事件
  
以下是使用Pygame模块在Pycharm中编写打地鼠游戏代码: ```python import pygame import sys import random # 初始化Pygame pygame.init() # 设置游戏窗口大小 size = width, height = 800, 600 screen = pygame.display.set_mode(size) # 设置游戏窗口标题 pygame.display.set_caption("打地鼠游戏") # 加载背景图片 bg_image = pygame.image.load("background.jpg").convert() # 加载地鼠图片 mouse_image = pygame.image.load("mouse.png").convert_alpha() # 设置游戏帧率 clock = pygame.time.Clock() FPS = 10 # 设置字体 font = pygame.font.Font(None, 36) # 设置游戏得分 score = 0 # 设置游戏结束标志 game_over = False # 地鼠类 class Mouse(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) self.image = mouse_image self.rect = self.image.get_rect() self.rect.left, self.rect.top = random.randint(0, width - self.rect.width), random.randint(0, height - self.rect.height) def update(self): self.rect.left, self.rect.top = random.randint(0, width - self.rect.width), random.randint(0, height - self.rect.height) # 创建地鼠组 mouse_group = pygame.sprite.Group() for i in range(10): mouse = Mouse() mouse_group.add(mouse) # 游戏循环 while True: # 处理游戏事件 for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() elif event.type == pygame.MOUSEBUTTONDOWN: # 判断是否点中地鼠 for mouse in mouse_group: if mouse.rect.collidepoint(event.pos): mouse_group.remove(mouse) score += 10 # 更新地鼠 mouse_group.update() # 绘制游戏界面 screen.blit(bg_image, (0, 0)) mouse_group.draw(screen) score_text = font.render("Score: " + str(score), True, (255, 255, 255)) screen.blit(score_text, (10, 10)) # 判断游戏是否结束 if len(mouse_group) == 0: game_over = True game_over_text = font.render("Game Over!", True, (255, 0, 0)) screen.blit(game_over_text, (width // 2 - game_over_text.get_width() // 2, height // 2 - game_over_text.get_height() // 2)) # 刷新游戏界面 pygame.display.flip() # 控制游戏帧率 clock.tick(FPS) # 退出Pygame pygame.quit() ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值