Python 启蒙 · Day 7
键盘控制:让角色动起来
这是孩子第一次做交互程序。目标是按键有反馈,而不是讲清事件系统。
课堂流程(45 分钟)
01
先看交互效果
老师运行最终版,点击 turtle 窗口后按方向键。
02
创建一个角色
这次 turtle 不是画笔,是可以移动的红色玩家。
03
写 move_up()
只做一个方向,看到 y 变大角色向上。
04
绑定 Up 键
listen 是听键盘,onkey 是把按键和动作连起来。
05
补齐四方向
x 控制左右,y 控制上下,加减号决定方向。
教师话术(照着说就行)
"今天不是电脑自己画完,而是你按键,它回应你。"
"listen 就是开始听键盘。"
"onkey 就是:按这个键,就叫这个函数出来工作。"
"注意这里写 move_up,不写 move_up(),因为现在不是马上执行,是交给键盘执行。"
键盘控制怎么讲
screen.listen()让窗口开始听键盘。
screen.onkey()把按键和函数连起来。
setx / sety改变角色的左右和上下位置。
课堂代码
第一步:创建角色
python
import turtle
screen = turtle.Screen()
screen.title("键盘控制")
player = turtle.Turtle()
player.shape("circle")
player.color("red")
player.penup()
player.goto(0, 0)
turtle.done()第二步:写上移动作
python
step = 20
def move_up():
player.sety(player.ycor() + step)第三步:绑定键盘
python
screen.listen()
screen.onkey(move_up, "Up")
turtle.done()完整版本
python
import turtle
screen = turtle.Screen()
screen.title("第 7 课:键盘控制")
screen.setup(700, 500)
player = turtle.Turtle()
player.shape("circle")
player.color("red")
player.penup()
player.goto(0, 0)
step = 20
def move_up():
player.sety(player.ycor() + step)
def move_down():
player.sety(player.ycor() - step)
def move_left():
player.setx(player.xcor() - step)
def move_right():
player.setx(player.xcor() + step)
screen.listen()
screen.onkey(move_up, "Up")
screen.onkey(move_down, "Down")
screen.onkey(move_left, "Left")
screen.onkey(move_right, "Right")
turtle.done()改一改
给孩子的任务
把 player.color("red") 改成喜欢的颜色。
把 step 改成 10、40,观察移动速度。
把 shape("circle") 改成 shape("turtle")。
新增一个 go_home(),按空格回到原点。
完成标准
孩子能运行后点击 turtle 窗口,再用方向键移动角色。
孩子知道 listen 是开始听键盘。
孩子知道 onkey 是把按键和函数连起来。
孩子能改 step,让角色每次走得更远或更近。
最常见问题是没点击 turtle 窗口。先点击窗口,再按方向键。
做完之后
收尾只问:如果屏幕上有一个目标,角色碰到它就得分,是不是就变成小游戏?
模块目录
Python 启蒙