🐶 PetOS v3.0
Online
🦮

事件处理机制

Event Handling

👂 监听事件
⚡ 做出反应
👂

事件处理器 (Event Handler)

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

def petMove(event):
  # 听到信号后要做的事
  pet.moveXY(50, 21)

# 告诉宠物:听到 "spawn" 就执行 petMove
pet.on("spawn", petMove)
"spawn (出生)" 是信号,"petMove" 是反应。
🐶
👂
🚪🏃
🤖

宠物系统 (Pet System)

宠物是你的得力编程助手,它有很多能力:

  • 🚶 moveXY: 跑腿
  • 🔍 findNearestByType: 找东西
  • 🦴 fetch: 捡回来
  • 🗣️ say: 说话
potion = pet.findNearestByType("potion")
pet.fetch(potion)
🧪
🔑
🐕
全能助手
📨

消息与说话者 (Parameters)

event 变量里藏着很多信息:

  • 💬 event.message: 说了什么?
  • 👤 event.speaker: 谁说的?
def onHear(event):
  if event.message == "North":
    pet.say("Htron")
...
🐶
👯

实战 I:同步移动

让英雄和宠物同时行动,而不是一个等另一个。

def petMove(event):
  pet.moveXY(50, 21)

pet.on("spawn", petMove)
hero.moveXY(50, 12)
并行工作:
事件触发后,宠物自己去跑,英雄也同时跑。
🤠
🐶
🎒

实战 II:智能寻物

宠物负责后勤,英雄负责战斗。

def onSpawn(event):
  potion = pet.find("potion")
  pet.fetch(potion)

while True:
  hero.attack(enemy)

分工明确,效率翻倍!

🤠 正在打怪... ⚔️
🐶 正在捡药水... 🧪
🎧

实战 III:选择性听力

只听主人的话,忽略其他人。

def onHear(event):
  if event.speaker == explorer:
    # 是主人,执行命令
    pet.moveXY(...)
🐶
🧑‍🌾 路人
🤠 主人
...
🌐

事件驱动编程

这种“等待事件发生再响应”的模式,叫做事件驱动编程

  • 🌐 网页: 点击按钮 → 执行函数
  • 📱 手机: 收到消息 → 弹出通知
  • 🎮 游戏: 受到伤害 → 播放音效
⏳ 等待 Wait
⬇️ 事件发生
🔔 触发 Trigger
⬇️ 调用函数
⚡ 执行 Execute
🎓

训练师口诀

"先定义 def 后注册 on
听到信号就行动。"
"speaker 辨身份,message 听内容,
分工合作显神通!"
🏅