躲避巨石游戏 · Python版

躲避巨石游戏 · Python版(带角色选择系统)

📖 游戏简介

《躲避巨石》是一款快节奏的街机风格小游戏,玩家控制一个角色,在场景中不断躲避从上方或侧面落下的巨石。每成功避开一块巨石,得分增加;一旦被砸中,生命值减少,若生命耗尽则游戏结束。

本版本最大的特色是角色选择系统 ------ 玩家可以从多个不同外观、属性(速度、体积、特殊技能)的角色中挑选,体验不同的生存策略。


🎮 游戏核心玩法

  • 玩家通过键盘(方向键或 WASD)控制角色移动。

  • 巨石从屏幕顶部(或随机边缘)生成,以不同的速度下落或滚动。

  • 玩家必须避开所有巨石,坚持时间越久,巨石生成速度越快、数量越多。

  • 屏幕上方显示:当前得分、剩余生命、所选角色名称。

  • 碰撞检测采用矩形碰撞(或圆形碰撞),保证精准度。

  • 当生命归零时,显示最终得分,并提供"重新开始"和"更换角色"的选项。


👥 角色选择系统(特色亮点)

在游戏开始前或暂停时,玩家可以进入角色选择界面。角色数据存储在字典或类中,每个角色不同特性。

角色选择界面实现思路(Pygame)

  • 横向滚动列表,显示角色头像、名称、简要属性。

  • 玩家用左右方向键选择,按回车确认。

  • 选择后返回主游戏场景,角色的速度、尺寸、技能函数被动态加载到游戏主循环中。


🕹️ 控制方式

按键 功能
↑ / W 向上移动
↓ / S 向下移动
← / A 向左移动
→ / D 向右移动
ESC 暂停 / 呼出角色选择菜单
R 游戏结束时重新开始(保持当前角色)

❤️ 生命与得分系统

  • 基础得分:每躲避一块巨石 +10 分

🧱 技术实现

推荐库

  • Pygame:最常用的 Python 游戏库,适合 2D 小游戏开发。

核心代码模块结构

text

复制代码
dodge_rocks/
├── main.py          # 游戏入口,包含主循环、事件处理
├── player.py        # 玩家角色类,包含移动、碰撞检测、技能
├── rock.py          # 巨石类,生成、移动、重绘
├── game_state.py    # 游戏状态管理(运行中、暂停、角色选择、结束)
├── character_data.py # 角色数据列表及加载函数
└── assets/          # 图片、字体、音效资源

关键代码片段(示意)

python

复制代码
# character_data.py
CHARACTERS = {
    "miner": {
        "name": "矿工",
        "color": (255, 200, 100),
        "speed": 5,
        "size": (32, 32),
        "skill": "shield",
        "cooldown": 0,
        "skill_func": lambda player: player.activate_shield()
    },
    "mage": {...},
    # ...
}

# player.py
class Player(pygame.sprite.Sprite):
    def __init__(self, char_key):
        super().__init__()
        data = CHARACTERS[char_key]
        self.image = pygame.Surface(data["size"])
        self.image.fill(data["color"])
        self.rect = self.image.get_rect()
        self.speed = data["speed"]
        self.skill = data["skill"]
        self.skill_cd = 0
        # ...
    
    def use_skill(self):
        if self.skill_cd <= 0:
            # 执行技能逻辑
            self.skill_cd = 60  # 冷却帧数

碰撞检测优化

  • 使用 pygame.sprite.groupcollide() 检测玩家与巨石组的碰撞。

  • 碰撞后调用 player.hit() 方法,根据角色特性减少生命,并重置无敌定时器。


🎨 画面与音效(可选增强)

  • 背景:渐变地面 + 简单山石纹理。

  • 巨石:从圆形到多边形随机形状,带阴影。

  • 音效:跳跃/移动声、碰撞音、得分提示音、技能使用音。

  • 屏幕震动:被撞时轻微晃动增强反馈。


🧪 扩展想法

  • 多人模式:两名玩家各自控制角色,在同一场地躲避(互相碰撞无影响,但会增加紧张感)。

  • 本地排行榜:记录最高分数和所用角色。

  • 道具系统:偶尔掉落加速鞋、缩小药水、吸引磁铁(吸走巨石)。

  • 难度曲线:巨石不仅下落,还会弹跳或追踪玩家(高级挑战模式)。


✅ 下载

https://download.csdn.net/download/suny8/92952037?spm=1001.2014.3001.5503

相关推荐
wgc2k1 小时前
Oops Framework-7-由空项目创建Oops Framework项目
游戏·cocos2d
wgc2k1 天前
Oops Framework-6-项目中如何使用AI的思路
人工智能·游戏·cocos2d
小熊Coding1 天前
从零打造一款回合制 RPG 游戏:基于 Pygame 的《塔影守卫》全解析
python·游戏·计算机专业·pygame·rpg·2d游戏
小雨下雨的雨1 天前
iOS风格计算器 - 鸿蒙PC Electron框架上的技术实现详解
游戏·ios·华为·electron·harmonyos·鸿蒙
小雨下雨的雨1 天前
五子棋AI在鸿蒙PC Electron上的实现的原理与实践
人工智能·游戏·华为·electron·harmonyos·鸿蒙
小雨下雨的雨1 天前
通过鸿蒙PC Electron框架技术完成-井字棋游戏 - 实现详解
前端·javascript·游戏·华为·electron·鸿蒙
小雨下雨的雨1 天前
基于鸿蒙PC Electron框架技术完成的五子棋游戏 - 技术实现详解
前端·javascript·游戏·华为·electron·鸿蒙
提子拌饭1332 天前
逛三园游戏——基于鸿蒙PC Electron框架实现
前端·javascript·游戏·华为·electron·鸿蒙
开开心心就好2 天前
支持多显示器的Windows高效分屏工具
运维·python·科技·游戏·计算机外设·ocr·powerpoint