1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
//! # 游戏状态模块 //! //! `states` 模块定义了游戏可能存在的各种状态,例如主菜单、游戏进行中、暂停、游戏结束等。 //! 通过状态管理,可以清晰地组织和控制游戏的不同阶段和行为。 /// 表示游戏当前所处的不同阶段或模式。 /// /// 这个枚举用于控制游戏的主循环,根据当前状态执行不同的逻辑和渲染。 #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum GameState { /// 游戏主菜单状态。 /// /// 在此状态下,通常会显示游戏标题、开始游戏选项、设置等。 Menu, /// 游戏进行中状态。 /// /// 这是游戏的核心状态,玩家在此状态下进行植物的种植、抵御僵尸的进攻等操作。 InGame, /// 游戏结束状态。 /// /// 当玩家失败(例如僵尸抵达房屋)或完成所有关卡时,游戏进入此状态。 /// 通常会显示游戏结束信息、得分等。 GameOver, } impl Default for GameState { /// 为 `GameState` 提供默认值。 /// /// 默认情况下,游戏从 `Menu` 状态开始。 /// /// # Returns /// /// * `GameState::Menu` - 默认的游戏状态。 fn default() -> Self { GameState::Menu } }