🐶 PetOS v3.0
● Online
🦮

事件处理机制

Event Handling

👂 监听事件
⚡ 做出反应

本节课关卡 · 1/2

扣哒世界 · 计算机科学3 · Python · 第70–82关

Python · 本节课关卡

70 · 快速赛跑

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

71 · 沙漠蘑菇

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

72 · 蘑菇之声

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

73 · 钥匙陷阱

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

74 · 命令链

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

75 · 宠物工程师

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

76 · 宠物翻译家

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

77 · 宠物副官

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

78 · 炼金术

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

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

本节课关卡 · 2/2

扣哒世界 · 计算机科学3 · Python · 第70–82关

Python · 本节课关卡

79 · 概念挑战. 宠物探索者

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

80 · 危险钥匙

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

81 · 奥林匹克比赛

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

82 · 十字骨头

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

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

👂

事件处理器 (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 听内容,
分工合作显神通!"
🏅

我的知识宝藏 · 一页复习

扣哒世界 · 计算机科学3 · Python · 第70–82关

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

事件处理器

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

pet.moveXY(50, 21)

宠物系统

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

potion = pet.findNearestByType("potion")

消息与说话者

event 变量里藏着很多信息:

pet.say("Htron")

实战 I:同步移动

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

pet.moveXY(50, 21)

实战 II:智能寻物

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

potion = pet.find("potion")

实战 III:选择性听力

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

pet.moveXY(...)

事件驱动编程

事件发生时执行对应处理;鼠标点击可以让玩家角色走向点击位置。

本节课关卡:70. 快速赛跑;71. 沙漠蘑菇;72. 蘑菇之声;73. 钥匙陷阱;74. 命令链;75. 宠物工程师;76. 宠物翻译家;77. 宠物副官;78. 炼金术;79. 概念挑战. 宠物探索者;80. 危险钥匙;81. 奥林匹克比赛;82. 十字骨头