游戏开发 2
第 13-14 关
🌲

游戏事件:destroy

消除魔法与开路

💥 击败 (Defeat)
✨ 销毁 (Destroy)

本节课关卡

扣哒世界 · 游戏开发2 · C++ · 第13–14关

C++ · 本节课关卡

13 · 从尘埃变到尘埃

先读关卡目标,观察地图,再运用本课知识。

14 · 牢笼

先读关卡目标,观察地图,再运用本课知识。

学习路线:读目标 → 看图解 → 写代码 → 运行检查

🧩

世界由“对象”组成

游戏里的每个东西都是对象 (Object)。

  • 🤠 player:主角
  • 🏭 munchkinSpawner:造怪机器
  • 🌲 passageForest1:挡路的树
// 对象有属性(.)和方法(.) hero.health; // 属性 forest.destroy(); // 方法
📦

Object

属性 方法
🆚

两种“消灭”方式

1. .defeat() (击败)
像被打晕了,还在场景里,只是血量归零。
适用:敌人、生成器
2. .destroy() (销毁)
魔法橡皮擦!直接从世界上彻底消失。
适用:墙壁、树木、障碍物
👾
点击 Defeat
🌳
点击 Destroy
🌲

第13关 · 从尘埃变到尘埃

任务: 当玩家击败足够多的敌人时,消除挡路的森林。

auto onDefeat(auto event) { game.defeated += 1; if (game.defeated == 3) { // 打败生成器,销毁森林 munchkinSpawner.defeat(); passageForest1.destroy(); } }
💀 x 3
⬇️ 触发条件
defeat() 生成器
destroy() 森林
✨ 路通了!
⛓️

第14关 · 牢笼

任务: 统计生成的怪物数量,达到一定数量后摧毁围栏。

auto onSpawn(auto event) { game.scoutsSpawned += 1; if (game.scoutsSpawned >= 3) { // 停止生成 scoutGenerator.defeat(); // 拆除围栏 rightFence.destroy(); } }
🚧 ➡️ ✨

围栏被 destroy() 后直接消失

🎮

实战模拟:打怪开路

点击出现的怪物来击败它们。
观察计数器和路障的变化。

  • 击败 3 只:第一棵树消失。
  • 击败 6 只:第二棵树消失。
Defeated: 0
Tree 1
Tree 2
🏭
🎓

通关口诀

defeat() 用于生物:
打倒它,算战绩,还在场上。
destroy() 用于死物:
清除它,变空气,彻底消失!
🌟

我的知识宝藏 · 一页复习

扣哒世界 · 游戏开发2 · C++ · 第13–14关

C++ · 知识点图
关键字方法 / 函数字符串数字

世界由“对象”组成

游戏里的每个东西都是对象 (Object)。

两种“消灭”方式

defeat 表示被击败;destroy() 会从场景移除对象。根据目标选择处理方式。

第13关 · 从尘埃变到尘埃

任务: 当玩家击败足够多的敌人时,消除挡路的森林。

game.defeated += 1;

第14关 · 牢笼

任务: 统计生成的怪物数量,达到一定数量后摧毁围栏。

game.scoutsSpawned += 1;

实战模拟:打怪开路

击败 3 只:第一棵树消失。

本节课关卡:13. 从尘埃变到尘埃;14. 牢笼