コースを動かそう3

今回のレッスンではコースに変化をつけていきます。

今回は次のような曲線のコースにしたいと思います。

変化のあるコース

本講座では、三角関数のsin関数を使ってこの曲線を表現します。

三角関数のsin関数は次のようなグラフになります。
周期的に変化する曲線なので、今回のコースにぴったりですね。
このsin関数を使って四角形のX座標を変化させていきます。

sin関数

draw 関数のコードを次のように変更してください。

function draw() { for (let i = 0; i < roads.length; i++) { roads[i].y += 1; if (roads[i].y >= 410) { roads[i].x = 200 + 100 * sin(frameCount * 0.01); roads[i].y = -10; } } background(0); drawRoads(); drawPlayer(); }

次のコードを追加しました。

roads[i].x = 200 + 100 * sin(frameCount * 0.01);

四角形が画面下に消えて、画面上に持ってくるときに、
sin関数を使ってX座標を設定しています。

sin関数は0を中心に-1〜1をとる関数なので、ゲーム画面の座標に合うように調整を加えています。
まず、 200 を加えることによって、画面の真ん中を中心に変化するようにしています。
次に、100 をかけることによって、画面横方向に大きく変化するようにしています。

最後に frameCount * 0.01 の部分ですが、
frameCount にはゲームの現在のフレーム数が格納されています。
フレーム数は、 draw 関数が実行されるたびにどんどん1ずつ増えていく数です。
これに 0.01 をかけることで、sin関数がゆっくり変化するようにしています。

それではゲームを実行してみましょう。

コース変化

上のようになっていれば成功です!

1000.01 の数字を変化させてみると、コースの形が変わります。
ぜひ色々と試してみてください。

オンライン相談

つまづいたときは

レーシングゲーム
レッスン一覧

はじめに

コース一覧

ゲーム開発コース

数学コース

アートコース

入門コース

このサイトについて


© 2022 ルートアイ All rights reserved.