0%

键盘监听的奥秘

按一下动一下,还是按住一直动?学会两种键盘控制方式,让机器人听你指挥!

📖 5 个知识点 🎮 2 个互动演示 ✏️ 3 道测验题
1
单词卡
点卡片翻面,点 🔊 听发音
clothes
/kləʊðz/
衣服
n. 衣物
update
/ʌpˈdeɪt/
更新
v. 刷新状态
keyboard
/ˈkiːbɔːd/
键盘
n. 输入设备
collide
/kəˈlaɪd/
碰撞
v. 碰撞检测
2
Pygame 框架复习
一个游戏程序的四步结构
1

导入工具箱

import pygame

2

设置窗口

宽高与标题

3

初始化角色

图片与位置

4

启动程序

进入主循环

🔄 游戏主循环:不断重复「绘制画面 → 检测输入 → 更新状态」
💡 窗口左上角是 (0, 0),向右 x 增大、向下 y 增大,和数学坐标系不一样哦!
3
两种键盘监听方式
左边按一次动一下,右边按住一直动
方式一

🎯 on_key_down

按键按下的瞬间触发一次,按一下动一下

判断:key == keys.RIGHT
Python
def on_key_down(key):
    if key == keys.RIGHT:
        robot.x += 10  # 移动一次
🎮 按一下 → 试试
🤖
🗑️
📦
按键状态
⬆️
⬅️
方向
➡️
⬇️
点方向键,点一下动一下
方式二

🚀 update + keyboard

每帧都检测,按住不放就一直移动

判断:keyboard.right 是否为 True
Python
def update():
    if keyboard.right:
        robot.x += 5  # 一直移动
🎮 按住 → 不放试试
🤖
🗑️
📦
🍬
按键状态
⬆️
⬅️
方向
➡️
⬇️
长按方向键,按住一直动
4
一张表看懂区别
什么时候用哪种方式?
对比项🎯 on_key_down🚀 update + keyboard
写在哪里on_key_down(key)update()
判断方式key == keys.RIGHTkeyboard.right
触发时机按下瞬间触发一次每帧检测,持续触发
移动效果按一次动一次按住不放一直动
适合场景跳跃、单发子弹角色移动、连发子弹
✈️ 思考题:飞机大战里,按一下空格发一颗子弹用方式一(单发点射);按住空格连续发射用方式二(火力压制)。
5
小测验
看看你掌握了没有
Q1. 想让角色"按一次右键移动一次",代码写在哪?
A on_key_down() 函数中
B update() 函数中
C 程序最外面
D 导入模块的地方
Q2. update() 中判断右键被按住,正确的是?
A if key == keys.RIGHT:
B if keyboard.right:
C if right.keyboard:
D if keys.RIGHT == key:
Q3. 飞机大战"按住空格连续发射子弹"用哪种?
A on_key_down() 判断 key == keys.SPACE
B update() 判断 keyboard.space
C 两种都不行
D 写在导入部分
🎉
全部答对!你已经掌握键盘监听啦!
6
📖 课堂讲义
13-1 讲义(共 8 页,上下滑动查看)
1/8讲义第1页
2/8讲义第2页
3/8讲义第3页
4/8讲义第4页
5/8讲义第5页
6/8讲义第6页
7/8讲义第7页
8/8讲义第8页
7
✏️ 课后习题
L13-1 课后习题(共 3 页,上下滑动查看)
1/3习题第1页
2/3习题第2页
3/3习题第3页