キーで動かそう
キーを押すと亀が動くインタラクティブなプログラム。onkey でキーと関数を結びつけ、listen でキー入力を受け付けます。
🧠 できるようになること
onkeyでキーと関数を結びつけられるlistenでキー入力を受け付ける- ユーザーの操作で動くプログラムを作れる
🧰 用意するもの
- パソコン
- ブラウザ(Chrome / Edge / Safari)
- インターネット接続
- Trinket(https://trinket.io/python)
🖼 できあがり
矢印キーを押すと亀が動きます。↑で前進、←で左回転、→で右回転、↓で後進。
📺 実行結果
(矢印キーで亀が画面を動き回ります)
🚀 やりかた
- 前進・後進・左回転・右回転の4つの関数を定義。
turtle.onkey(関数, "キー名")で結びつける。turtle.listen()でキー受付開始。turtle.mainloop()で待ち受け。
🐍 きょうのコード
Python
main.py
import turtle
turtle.shape("turtle")
def go_forward():
turtle.forward(20)
def go_backward():
turtle.backward(20)
def turn_left():
turtle.left(15)
def turn_right():
turtle.right(15)
turtle.onkey(go_forward, "Up")
turtle.onkey(go_backward, "Down")
turtle.onkey(turn_left, "Left")
turtle.onkey(turn_right, "Right")
turtle.listen()
turtle.mainloop()
上のコードをコピーして、Trinketの左のエリアに貼り付け、Runボタン(▶)を押すと動きます。
💡 きょうのポイント
onkey(関数, キー名) はキーが押されたとき関数を呼ぶ仕組み。listen() しないと反応しません。mainloop() でずっと待ち受ける。これがイベント駆動プログラミング。
🎮 チャレンジ
- スペースキーで色を変える機能を追加
- 「c」キーで画面をクリアしよう(
turtle.clear()) - 「q」キーで終了させよう
🔁 ふりかえり
- プログラムが「待ち受ける」のはどんな状態?
- ゲームの操作はこの仕組みで作れそう?
- 次回からはアニメや当たり判定。本格ゲームへ
👨👩👧 おうちの人・先生へ
- 準備:Trinketの画面で操作するときは、まずキャンバスをクリックしてフォーカスを当てる必要があります。
- つまずきポイント:キャンバスをクリックしてからキー操作します。クリックする前は反応しないことがあります。コードが正しいのに動かない場合は、まずキャンバスを1回クリック、次に英数入力になっているか、最後にキー名のスペルを確認します。
- 声かけ例:「ゲームの操作はこういう仕組み」と現実とつなげて。