第12课:事件与控制
进度 0/30
📞
事件与控制
游戏随时待命:你一按键,它就干活
📖知识引入
☎️事件=游戏在接电话
游戏大部分时间在待机等你「打电话」:你按了键、点了鼠标——铃响了!它立刻放下手头的事,跑去执行你指定的任务。
⌨️键盘事件最常用
「按下左方向键->角色左移」「按下空格->跳跃」。每种按键都登记一位「接线员」,谁负责什么,一清二楚。
🖱️鼠标和触摸
手机游戏靠手指:点一下=开火,往左滑=左移。网页游戏用鼠标点击、移动事件。它们和键盘是同一套电话系统。
⏰看不见的定时事件
「每过1秒生成一个敌人」「60秒后游戏结束」——定时器也在偷偷打电话。游戏里许多「自动发生」的事,都是它干的。
🔀if是分流器
接起电话后怎么干活?靠if判断:「如果按的是左键,就x减10;如果是右键,就x加10」。条件不同,动作不同。
💡
事件是响铃,处理函数是接电话的人——铃一响就干活!
🔍一通电话的旅行
// 给空格键登记一位「接线员」
document.addEventListener('keydown', function (e) {
// 电话响了,先判断是谁打来的
if (e.key === 'ArrowLeft') {
player.x -= 10; // 左键:往左挪10像素
} else if (e.key === 'ArrowRight') {
player.x += 10; // 右键:往右挪10像素
} else if (e.key === ' ') {
jump(); // 空格:跳跃!
}
});
// 定时器事件:每秒生成一个敌人
setInterval(spawnEnemy, 1000);你按下空格键后发生了什么:
你按下空格 ⌨️ │ ▼ 铃声响起(事件触发) 「keydown事件:键=空格」 │ ▼ 接线员拿起电话(处理函数) if (键 === '空格') { 让角色起跳(); 播放音效('跳!'); 播放动画('起跳帧'); } │ ▼ 挂断电话,继续待命 等待下一个按键……
常见「电话簿」一览:
⌨️ keydown 按下键盘 🖱️ click 鼠标点击 👆 touchstart 手指按下屏幕 ⏰ timer 定时器到点 💥 碰撞 两个物体相遇
一部游戏就是一部电话总机, 几百通电话此起彼伏, 忙碌而有序!
🎯小测验
第1题:「事件」最像生活中的什么?
第2题:「每2秒生成一个敌人」靠什么实现?
第3题:按下不同按键做不同动作,靠什么区分?
📝本课知识点
- ✓事件=游戏的电话系统
- ✓键盘、鼠标、触摸、定时器都是事件
- ✓处理函数=接电话的人
- ✓if判断负责分流不同按键
- ✓游戏的自动行为多靠定时器
第12课完成!继续探索下一课吧 🚀
