设计思路

核心模块设计

src/
├── main.rs
└── game/
    ├── mod.rs              # 主模块声明
    ├── core/               # 核心引擎
    │   ├── mod.rs
    │   ├── engine.rs       # 引擎主体
    │   ├── state.rs        # 游戏状态管理
    │   └── events.rs       # 自定义事件
    ├── dialogue/           # 对话系统
    │   ├── mod.rs
    │   ├── parser.rs       # 脚本解析
    │   ├── display.rs      # 对话显示
    │   └── history.rs      # 对话历史
    ├── character/          # 角色系统
    │   ├── mod.rs
    │   ├── sprite.rs       # 角色精灵
    │   ├── animation.rs    # 角色动画
    │   └── expression.rs   # 表情管理
    ├── scene/              # 场景系统
    │   ├── mod.rs
    │   ├── background.rs   # 背景管理
    │   ├── transition.rs   # 场景切换
    │   └── effects.rs      # 特效
    ├── ui/                 # UI系统
    │   ├── mod.rs
    │   ├── menu.rs         # 菜单
    │   ├── save_load.rs    # 存档界面
    │   └── settings.rs     # 设置界面
    ├── audio/              # 音频系统
    │   ├── mod.rs
    │   ├── music.rs        # 背景音乐
    │   ├── sound.rs        # 音效
    │   └── voice.rs        # 语音
    └── input/              # 输入系统
        ├── mod.rs
        ├── keyboard.rs     # 键盘输入
        └── mouse.rs        # 鼠标输入

game/mod.rs 示例

pub mod core;
pub mod dialogue;
pub mod character;
pub mod scene;
pub mod ui;
pub mod audio;
pub mod input;

use bevy::prelude::*;

pub struct GamePlugin;

impl Plugin for GamePlugin {
    fn build(&self, app: &mut App) {
        app
            .add_plugins(core::CorePlugin)
            .add_plugins(dialogue::DialoguePlugin)
            .add_plugins(character::CharacterPlugin)
            .add_plugins(scene::ScenePlugin)
            .add_plugins(ui::UiPlugin)
            .add_plugins(audio::AudioPlugin)
            .add_plugins(input::InputPlugin);
    }
}

各模块的职责

core: 引擎的核心逻辑,状态管理,事件系统
dialogue: 处理对话脚本解析、显示、历史记录
character: 角色精灵管理、动画、表情变化
scene: 背景切换、场景特效、过渡动画
ui: 游戏菜单、存档读档、设置界面
audio: 音乐、音效、语音的播放管理
input: 统一的输入处理,支持键盘和鼠标

posted @ 2025-07-02 17:07  Furau  阅读(13)  评论(0)    收藏  举报