🐶 PetOS v3.0
Online
🦮

事件处理机制

Event Handling

👂 监听事件
⚡ 做出反应
👂

事件处理器 (Handler)

事件处理器就像程序的“耳朵”。
它一直竖着耳朵听,一旦听到特定的信号(事件),就立马行动!

// 1. 定义反应动作 void petMove(auto event) { pet.moveXY(50, 21); } // 2. 注册耳朵:听到 "spawn" 就执行 petMove pet.on("spawn", petMove);
"spawn (出生)" 是信号,"petMove" 是反应函数。
🐶
👂
🚪🏃
🏎️

实战:快速赛跑 (Level 70)

通常代码是一行行执行的。但在事件驱动中,宠物可以和英雄同时行动!

// 定义宠物的动作 void petMove(auto event) { pet.moveXY(50, 21); } int main() { // 注册事件:一旦开始,宠物就跑 pet.on("spawn", petMove); // 英雄同时也跑 hero.moveXY(50, 12); return 0; }
🏃‍♂️ 🐕💨
Parallel Action
🎒

宠物能力:寻物与拾取

宠物非常擅长跑腿。常用函数:

  • 🔍 findNearestByType("potion"): 找东西
  • 🦴 fetch(item): 捡回来
void onSpawn(auto event) { while(true) { // 找药水 auto potion = pet.findNearestByType("potion"); if (potion) { pet.fetch(potion); } } }
🧪 🐕

Helper Doggo

📢

听觉事件 (Hear Event)

宠物不仅能看见,还能听见!

event 参数里包含着关键信息:

  • 👤 event.speaker: 谁说的?
  • 💬 event.message: 说了什么?
void onHear(auto event) { // 听到 "North" 就回答 "Htron" if (event.message == "North") { pet.say("Htron"); } }
...
🐶
🆔

身份识别:只听主人的话

你可以通过检查 event.speaker 来决定是否服从命令。

void onHear(auto event) { // 获取裁判员 auto referee = pet.findNearestByType("wizard"); // 只有裁判说 "Start" 才跑 if (event.speaker == referee && event.message == "Start") { pet.moveXY(53, 27); } }
"除了裁判,谁的话都不听!"
🧙‍♂️ Referee: "Start!"
⬇️
🐶: 🏃‍♂️💨

🧟‍♂️ Enemy: "Start!"
⬇️
🐶: 😴
🎓

训练师总结

"pet.on(事件, 函数) 是核心,
绑定信号与动作。"
"event.message 听内容,
event.speaker 辨身份。"
🏆