このレッスンの やり方:
- 「エディタ」を 別のタブで ひらいて準備しよう。
- HTML → CSS → JavaScript の 順番で コードを 書いていくよ。
- 「右キーが おされたら、横の場所(x)を 増やす」という 仕組みを 作るよ!
ステップ 1: ステージと キャラクター (HTML)
かけっこをする「スタジアム」と、プレイヤーを 用意しよう。
HTMLの 中 に 書いてね。
<div id="stadium">
<div id="runner">🏃♂️</div>
<div id="goal-flag">🚩</div>
</div>
<p>右矢印キー (👉) を 連打しよう!</p>
ステップ 2: キャラの 向きと 配置 (CSS)
キャラを 右向き に反転させ、好きな場所に置ける設定にするよ。
HTMLの 中(CSS の 中) に 書いてね。
body {
text-align: center;
font-family: sans-serif;
}
#stadium {
width: 500px;
height: 100px;
background-color: #eee;
margin: 50px auto;
position: relative;
border-bottom: 5px solid #555;
}
#runner {
font-size: 50px;
position: absolute;
left: 0px;
bottom: 0px;
transform: scaleX(-1);
}
#goal-flag {
font-size: 40px;
position: absolute;
right: 10px;
bottom: 0px;
}
ステップ 3: 座標を計算して 進ませる (JavaScript)
キーを押すたびに 座標 x を増やして、ゴール判定をしよう。
HTMLの 中(JavaScript の 中) に 書いてね。
let x = 0;
const player = document.getElementById("runner");
document.addEventListener("keydown", function(e) {
if (e.key == "ArrowRight") {
x = x + 10;
if (x >= 440) {
x = 440;
player.style.left = x + "px";
alert("ゴール! おめでとう!");
x = 0;
}
player.style.left = x + "px";
}
});
「通り過ぎない」判定のコツ
x = 440;(リミッター)
if (x >= 440) でゴールを判定した直後に、x = 440 と上書きすることで、キャラクターが勢い余って画面の外へ消えてしまうのを防いでいます。これはアクションゲームの「壁」や「床」の判定と同じ仕組みですよ!
✨ 改造チャレンジ! ✨
コードを 自由に 書きかえて、自分だけのゲームにしよう。
x = x + 50 にして、1歩のスピードを爆速にする!
- キャラの絵文字を 🚗 や 🛸、🦖 に変えてみる。
ArrowLeft(左矢印)も 追加して、バックできるようにする!