避けゲームを作ろう(基本)
これまでの全部を組み合わせて避けゲームの基本形を作ります。プレイヤーは横に動けて、上から落ちる赤いボールを避ける。当たったら「ゲームオーバー」。
🧠 できるようになること
- Lv3で学んだ全要素を組み合わせる
- 実際に遊べるゲームを完成させる
- ゲーム作りの達成感を得る
🧰 用意するもの
- パソコン
- ブラウザ(Chrome / Edge / Safari)
- インターネット接続
- Trinket(https://trinket.io/python)
🖼 できあがり
下にいるプレイヤーを左右の矢印キーで動かして、上から落ちてくるボールを避けます。当たったらゲームオーバー。
📺 実行結果
(避けゲームのプレイ画面。ボールが落ちてくる)
🚀 やりかた
- プレイヤー(下)と敵ボール(上から落下)を作る。
- 敵ボールは y を毎ループ減らす。下まで来たら上にリセット& x ランダム。
- プレイヤーは矢印キーで左右に動く。
- 当たり判定。距離30以下なら「💥 ゲームオーバー」+ break。
🐍 きょうのコード
Python
main.py
import turtle
import random
screen = turtle.Screen()
screen.bgcolor("black")
player = turtle.Turtle()
player.shape("square")
player.color("cyan")
player.penup()
player.goto(0, -200)
enemy = turtle.Turtle()
enemy.shape("circle")
enemy.color("red")
enemy.penup()
enemy.goto(random.randint(-200, 200), 200)
def go_left(): player.setx(player.xcor() - 25)
def go_right(): player.setx(player.xcor() + 25)
screen.onkey(go_left, "Left")
screen.onkey(go_right, "Right")
screen.listen()
while True:
enemy.sety(enemy.ycor() - 6)
if enemy.ycor() < -250:
enemy.goto(random.randint(-200, 200), 200)
if player.distance(enemy) < 25:
print("💥 ゲームオーバー!")
break
上のコードをコピーして、Trinketの左のエリアに貼り付け、Runボタン(▶)を押すと動きます。
💡 きょうのポイント
これは立派なゲームです。プレイヤー操作・敵の自動移動・当たり判定・終了条件、すべてそろった構造。あとは敵を増やしたりスコアを足したりすれば、もっと面白くなります。
🎮 チャレンジ
- 敵のスピードをだんだん速くしよう
- 敵を3個に増やそう
- プレイヤーの操作キーを WASD にも対応
🔁 ふりかえり
- ゲームを自分で作るとプレイするのとどう違う感覚?
- 次回スコアを入れるとどう変わる?
- 市販のゲームの作り方も、土台は同じ?
👨👩👧 おうちの人・先生へ
- 準備:Trinket キャンバスにフォーカスを当ててからプレイします。キーが反応しないときは、まずキャンバスをクリックします。
- つまずきポイント:
while True内のループが速すぎたらtime.sleep(0.02)で調整します。使う場合は先頭にimport timeも必要です。 - 声かけ例:「動いたら完成」ではなく、「速さ・当たり判定・遊びやすさを調整するところまでゲーム作り」と伝えると、改造の目的がはっきりします。