デジタルこどもBASEのロゴ 特定非営利活動法人デジタルこどもBASE 📚 目次
第76回 Lv3 ⏱ 20〜25分

キーで動かそう

🎯 きょうのミッション

キーを押すと亀が動くインタラクティブなプログラム。onkey でキーと関数を結びつけ、listen でキー入力を受け付けます。

🧠 できるようになること

  • onkey でキーと関数を結びつけられる
  • listen でキー入力を受け付ける
  • ユーザーの操作で動くプログラムを作れる

🧰 用意するもの

🖼 できあがり

矢印キーを押すと亀が動きます。↑で前進、←で左回転、→で右回転、↓で後進。

📺 実行結果
(矢印キーで亀が画面を動き回ります)

🚀 やりかた

  1. 前進・後進・左回転・右回転の4つの関数を定義。
  2. turtle.onkey(関数, "キー名") で結びつける。
  3. turtle.listen() でキー受付開始。
  4. 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を開いて動かす

上のコードをコピーして、Trinketの左のエリアに貼り付け、Runボタン(▶)を押すと動きます。

💡 きょうのポイント

onkey(関数, キー名) はキーが押されたとき関数を呼ぶ仕組み。listen() しないと反応しません。mainloop() でずっと待ち受ける。これがイベント駆動プログラミング。

🎮 チャレンジ

  • スペースキーで色を変える機能を追加
  • 「c」キーで画面をクリアしよう(turtle.clear()
  • 「q」キーで終了させよう

🔁 ふりかえり

  • プログラムが「待ち受ける」のはどんな状態?
  • ゲームの操作はこの仕組みで作れそう?
  • 次回からはアニメや当たり判定。本格ゲームへ

👨‍👩‍👧 おうちの人・先生へ

  • 準備:Trinketの画面で操作するときは、まずキャンバスをクリックしてフォーカスを当てる必要があります。
  • つまずきポイント:キャンバスをクリックしてからキー操作します。クリックする前は反応しないことがあります。コードが正しいのに動かない場合は、まずキャンバスを1回クリック、次に英数入力になっているか、最後にキー名のスペルを確認します。
  • 声かけ例:「ゲームの操作はこういう仕組み」と現実とつなげて。