ゲーム数学・力学

サンプルソース

実行結果
v0


続きを読む
このエントリーをはてなブックマークに追加

サンプルソース


実行するとなめらかに画面が切り替わります。
Fade


続きを読む
このエントリーをはてなブックマークに追加

ここではゲーム数学をDXライブラリのコードと合わせて学びます。
DXライブラリの設定方法はこちら→DXライブラリ置き場 HOME

サンプルソース


実行結果
m0



注目してほしいのはこの行です。
// プレイヤーを30度の角度をつけて移動させる
PlayerX += cos(30.0f * DEGTORAD);
PlayerY += sin(30.0f * DEGTORAD);


プレイヤーのXとY座標に難しそうな値を入力していますね。でも大丈夫です。僕も昔はこれに四苦八苦したので、できるだけ分かりやすくご説明します。

まず、斜めに移動させるために角度をつけることが必要ですね。
しかしプログラミングの世界では、マウスで引っ張って角度をつけることはできません。
なので数学の力を借りましょう。数学という単語で身構えないで下さいね、きっとできるようになりますから。

この三角形を見て下さい。
m1


「え? 斜め移動なのにどうして三角形が出てくるの?」

と思った方もいると思います。しかしよく見てみて下さい。
m2


よく見ると、三角形の一番長い辺は、斜めに描かれていますね。
つまり三角形を利用することで、斜めの辺を表現できそうです。
では具体的に三角形の斜めの辺はどのように決まるのでしょうか。


実は……横と縦の線で決まります。
m4



三角形は必然的に、横と縦が決まれば斜めの辺も決まるので、縦横同時にキャラクターを移動させる
ことで、斜めを表現できます。つまり

PlayerX += 2.0f;
PlayerY += 1.0f;

続きを読む
このエントリーをはてなブックマークに追加

【概要】
ある領域へ侵入した時、侵入した分だけ座標を戻す。

※衝突処理は様々な方法があり、正解はない。


【詳細】
サンプルソース

実行結果
e25


中央に壁があり、右へ行こうとしても行けないのである。
侵入した段階で移動を止めたり、座標を代入したりせず、ほんの少しだけ押し出してあげることで、『壁の中にいる』を防ぐことができる。

これをベースに色々と改良して各々のゲームに組み込んで欲しい。
このエントリーをはてなブックマークに追加

きれいなジャンプ(ボタンを押した長さに応じたジャンプ)
マリオ

サンプルソース

実行結果
v1

続きを読む
このエントリーをはてなブックマークに追加

↑このページのトップヘ