PYTHON人狗大战CSDN-python人狗大战游戏

网红黑料 2025-04-08 18 0

以下是一个简单的Python人狗大战游戏示例代码,使用Pygame库实现基础游戏功能。这个示例包含玩家控制、敌人移动和碰撞检测:

python

import pygame

import random

初始化Pygame

pygame.init

游戏窗口设置

WIDTH, HEIGHT = 800, 600

window = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption("人狗大战

  • CSDN版")
  • 颜色定义

    WHITE = (255, 255, 255)

    RED = (255, 0, 0)

    玩家类

    class Player(pygame.sprite.Sprite):

    def __init__(self):

    super.__init__

    self.image = pygame.image.load("player.png") 需要准备玩家图片

    self.rect = self.image.get_rect

    self.rect.center = (WIDTH//2, HEIGHT//2)

    self.speed = 5

    def update(self, keys):

    if keys[pygame.K_LEFT] and self.rect.left > 0:

    self.rect.x -= self.speed

    if keys[pygame.K_RIGHT] and self.rect.right < WIDTH:

    self.rect.x += self.speed

    if keys[pygame.K_UP] and self.rect.top > 0:

    self.rect.y -= self.speed

    if keys[pygame.K_DOWN] and self.rect.bottom < HEIGHT:

    self.rect.y += self.speed

    狗类(敌人)

    class Dog(pygame.sprite.Sprite):

    def __init__(self):

    super.__init__

    self.image = pygame.image.load("dog.png") 需要准备狗图片

    self.rect = self.image.get_rect

    self.rect.x = random.randint(0, WIDTH

  • self.rect.width)
  • self.rect.y = random.randint(0, HEIGHT

  • self.rect.height)
  • self.speed = 3

    def update(self):

    self.rect.x += random.randint(-self.speed, self.speed)

    self.rect.y += random.randint(-self.speed, self.speed)

    PYTHON人狗大战CSDN-python人狗大战游戏

    self.rect.clamp_ip(window.get_rect)

    游戏初始化

    player = Player

    dogs = pygame.sprite.Group

    all_sprites = pygame.sprite.Group

    all_sprites.add(player)

    score = 0

    clock = pygame.time.Clock

    running = True

    生成初始敌人

    for _ in range(5):

    dog = Dog

    dogs.add(dog)

    all_sprites.add(dog)

    游戏主循环

    while running:

    window.fill(WHITE)

    事件处理

    for event in pygame.event.get:

    if event.type == pygame.QUIT:

    running = False

    玩家控制

    keys = pygame.key.get_pressed

    player.update(keys)

    敌人更新

    dogs.update

    碰撞检测

    hits = pygame.sprite.spritecollide(player, dogs, True)

    for hit in hits:

    score += 10

    print(f"得分: {score}")

    渲染画面

    all_sprites.draw(window)

    显示得分

    font = pygame.font.SysFont(None, 36)

    text = font.render(f'Score: {score}', True, RED)

    window.blit(text, (10, 10))

    pygame.display.flip

    clock.tick(60)

    pygame.quit

    使用说明:

    1. 需要准备两个图片文件(player.png和dog.png)放在项目目录下

    2. 使用方向键控制玩家移动

    3. 碰到狗即可得分,每次+10分

    4. 窗口大小可修改WIDTH和HEIGHT参数调整

    5. 狗的移动速度和数量可在代码中调整

    扩展建议:

    1. 添加音效(攻击声、狗叫声)

    2. 增加生命值系统

    3. 添加游戏结束条件

    4. 实现难度递增(随时间加快狗的速度)

    5. 添加攻击机制(空格键攻击)

    6. 增加不同品种的狗(不同速度、分值)

    学习要点:

    1. Pygame基础框架

    2. 精灵(Sprite)和碰撞检测

    3. 游戏循环结构

    4. 事件处理机制

    5. 游戏对象的更新与渲染

    可以通过CSDN搜索以下关键词获取更多资源:

  • Pygame精灵组使用
  • Python游戏碰撞检测
  • Pygame音效添加
  • Python游戏角色动画
  • 建议先运行基础版本,然后逐步添加新功能来深入理解游戏开发逻辑。