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

ボールが動くアニメ

🎯 きょうのミッション

キー入力なしで自動的に動くボール。while True ループの中でgoto 座標を少しずつずらせば、アニメになります。

🧠 できるようになること

  • turtle.Turtle() で個別の亀を作れる
  • goto(x, y) で位置を直接指定できる
  • while ループでアニメーションが作れる

🧰 用意するもの

🖼 できあがり

赤いボールが画面の左から右へ自動的に動いていきます。

📺 実行結果
(赤いボールが左から右へ移動します)

🚀 やりかた

  1. ball = turtle.Turtle() でボール用の亀を作る。
  2. ball.shape("circle") + color("red")
  3. ball.penup() で線を引かない。
  4. x = -200 初期位置。while True で x += 5 + goto(x, 0)
  5. 200を超えたら x = -200 でリセット。

🐍 きょうのコード

Python main.py
import turtle

screen = turtle.Screen()
ball = turtle.Turtle()
ball.shape("circle")
ball.color("red")
ball.penup()

x = -200

while True:
    x += 5
    if x > 200:
        x = -200
    ball.goto(x, 0)
▶ Trinketを開いて動かす

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

💡 きょうのポイント

turtle.Turtle()新しい亀が作れます。複数のオブジェクトを動かすときに使います。penup+goto で線を引かずに位置移動。

🎮 チャレンジ

  • 上下にも動くようにしよう(y も変える)
  • ボールを2つ作って違う動きをさせよう
  • x += random.randint(1, 10) でランダムな速さに

🔁 ふりかえり

  • turtle.Turtle()turtle.forward()の違いは?
  • アニメーションの正体は「位置を少しずつ変える」
  • 次回は端で跳ね返る。何が必要?

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

  • 準備:TrinketのStopボタンの場所を先に確認します。動き続けるコードなので、止め方を知ってから実行すると安心です。
  • つまずきポイントwhile True で動きが止まらないことがあります。まずStopで止め、次に x += 5 の数字を小さくして速さを調整します。
  • 声かけ例:「アニメは、少し動かして、また少し動かすことのくりかえし」と伝えると、ゲームキャラの動きとつながります。