pvz_rust_wsll

Crates.iopvz_rust_wsll
lib.rspvz_rust_wsll
version0.2.1
created_at2025-05-13 12:51:09.240981+00
updated_at2025-05-16 07:39:55.841121+00
description一个用 Rust 实现的植物大战僵尸风格游戏的库和可执行程序。目前基本完成.
homepage
repositoryhttps://github.com/iamwsll/PVZbyRust
max_upload_size
id1671872
size6,594,479
wang Qingheng (iamwsll)

documentation

README

PVZbyRust

用Rust语言实现的植物大战僵尸游戏

WARNING:请务必在试玩前把电脑屏幕缩放率调成100%,否则会出现重大bug

English | 简体中文

项目简介

这是一个使用Rust语言和ggez游戏引擎开发的植物大战僵尸风格游戏。本项目旨在展示如何使用Rust构建具有良好架构和模式的游戏应用,采用了工厂模式等设计模式使代码更易于扩展和维护。

游戏截图

功能特性

  • 植物系统: 包含豌豆射手、向日葵、坚果墙等可种植角色,每种植物具有独特的攻击方式和防御能力
  • 僵尸系统: 包括普通僵尸和路障僵尸,未来可轻松添加更多种类
  • 资源管理: 阳光收集和使用系统,购买和放置植物
  • 关卡系统: 波次进攻,随着时间增加难度
  • 用户交互: 植物选择、铲子功能、暂停功能
  • 碰撞检测: 完善的实体间交互系统

技术特点

  • 模块化设计: 代码按照功能清晰地组织为核心、实体、机制、植物、UI和僵尸等模块
  • 设计模式: 使用工厂模式实现植物和僵尸的创建,便于扩展新类型
  • 良好的注释: 详细的文档注释,便于理解代码结构和功能
  • 固定帧率: 游戏以固定的帧率运行,确保游戏体验一致性
  • 事件处理: 完整的用户输入处理系统

系统需求

  • Rust 2021版本或更高
  • 支持图形显示的操作系统(Windows/macOS/Linux)
  • 建议分辨率:1400 x 600或更高

安装和运行

  1. 克隆仓库:
git clone https://github.com/iamwsll/PVZbyRust.git
cd PVZbyRust
  1. 编译和运行游戏:

WARNING:请务必在试玩前把电脑屏幕缩放率调成100%,否则会出现重大bug

cargo run --release

游戏操作指南

  • 收集阳光: 点击屏幕上落下的阳光以收集资源
  • 种植植物:
    1. 点击商店中的植物卡片
    2. 点击草坪网格中的位置放置植物
  • 铲除植物:
    1. 点击铲子图标
    2. 点击要移除的植物
  • 暂停游戏: 点击屏幕右上角的暂停按钮

项目结构

src/
├── core/           # 核心游戏引擎
│   ├── game.rs     # 游戏主循环和状态
│   ├── renderer.rs # 渲染系统
│   ├── resources.rs # 资源加载和管理
│   └── states.rs   # 游戏状态定义
├── entities/       # 游戏实体
│   ├── pea.rs      # 豌豆弹药
│   └── sun.rs      # 阳光资源
├── mechanics/      # 游戏机制
│   ├── collision.rs # 碰撞检测
│   ├── entity_manager.rs # 实体管理
│   └── level_controller.rs # 关卡控制
├── plants/         # 植物相关功能
│   ├── peashooter.rs # 豌豆射手
│   ├── plant_factory.rs # 植物工厂
│   ├── plant_trait.rs # 植物特性接口
│   ├── sunflower.rs # 向日葵
│   └── wallnut.rs  # 坚果墙
├── ui/             # 用户界面
│   ├── grid.rs     # 游戏网格
│   ├── input_handler.rs # 输入处理
│   ├── shop.rs     # 植物商店
│   └── shovel.rs   # 铲子功能
├── zombies/        # 僵尸相关功能
│   ├── conehead_zombie.rs # 路障僵尸
│   ├── normal_zombie.rs # 普通僵尸
│   ├── zombie_factory.rs # 僵尸工厂
│   └── zombie_trait.rs # 僵尸特性接口
├── lib.rs          # 库入口
└── main.rs         # 程序入口

开发者指南

添加新植物

  1. plants/目录中创建新植物的实现文件
  2. 实现PlantTrait特性
  3. plant_factory.rs中的PlantType枚举中添加新植物类型
  4. PlantType.cost()方法中添加新植物的成本
  5. PlantFactory.create_plant()中添加新植物的创建逻辑
  6. shop.rs中添加新植物的商店卡片

添加新僵尸

  1. zombies/目录中创建新僵尸的实现文件
  2. 实现ZombieTrait特性
  3. zombie_factory.rs中的ZombieType枚举中添加新僵尸类型
  4. ZombieFactory.create_zombie()中添加新僵尸的创建逻辑

许可证

本项目使用MIT许可证 - 详见 LICENSE 文件。

鸣谢

  • ggez游戏引擎
  • Rust社区的支持
  • 原版植物大战僵尸游戏的灵感

联系方式

如有任何问题或建议,请发送邮件至 1481121704@qq.com

Commit count: 54

cargo fmt