ゲーム数学・力学
【ゲーム数学/DXライブラリ】なめらかな画面フェード【初心者向け】
【ゲーム数学/DXライブラリ】斜め移動するキャラクター【初心者向け】
ここではゲーム数学をDXライブラリのコードと合わせて学びます。
DXライブラリの設定方法はこちら→DXライブラリ置き場 HOME
サンプルソース
実行結果

注目してほしいのはこの行です。
プレイヤーのXとY座標に難しそうな値を入力していますね。でも大丈夫です。僕も昔はこれに四苦八苦したので、できるだけ分かりやすくご説明します。
まず、斜めに移動させるために角度をつけることが必要ですね。
しかしプログラミングの世界では、マウスで引っ張って角度をつけることはできません。
なので数学の力を借りましょう。数学という単語で身構えないで下さいね、きっとできるようになりますから。
この三角形を見て下さい。

「え? 斜め移動なのにどうして三角形が出てくるの?」
と思った方もいると思います。しかしよく見てみて下さい。

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

三角形は必然的に、横と縦が決まれば斜めの辺も決まるので、縦横同時にキャラクターを移動させる
ことで、斜めを表現できます。つまり
PlayerX += 2.0f;
PlayerY += 1.0f;
続きを読む
DXライブラリの設定方法はこちら→DXライブラリ置き場 HOME
サンプルソース
実行結果

注目してほしいのはこの行です。
// プレイヤーを30度の角度をつけて移動させる
PlayerX += cos(30.0f * DEGTORAD);
PlayerY += sin(30.0f * DEGTORAD);
プレイヤーのXとY座標に難しそうな値を入力していますね。でも大丈夫です。僕も昔はこれに四苦八苦したので、できるだけ分かりやすくご説明します。
まず、斜めに移動させるために角度をつけることが必要ですね。
しかしプログラミングの世界では、マウスで引っ張って角度をつけることはできません。
なので数学の力を借りましょう。数学という単語で身構えないで下さいね、きっとできるようになりますから。
この三角形を見て下さい。

「え? 斜め移動なのにどうして三角形が出てくるの?」
と思った方もいると思います。しかしよく見てみて下さい。

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

三角形は必然的に、横と縦が決まれば斜めの辺も決まるので、縦横同時にキャラクターを移動させる
ことで、斜めを表現できます。つまり
PlayerX += 2.0f;
PlayerY += 1.0f;
続きを読む
【ゲーム数学/DXライブラリ】バグりにくい当たり判定【初心者向け】
【概要】
ある領域へ侵入した時、侵入した分だけ座標を戻す。
※衝突処理は様々な方法があり、正解はない。
【詳細】
サンプルソース
実行結果

中央に壁があり、右へ行こうとしても行けないのである。
侵入した段階で移動を止めたり、座標を代入したりせず、ほんの少しだけ押し出してあげることで、『壁の中にいる』を防ぐことができる。
これをベースに色々と改良して各々のゲームに組み込んで欲しい。
ある領域へ侵入した時、侵入した分だけ座標を戻す。
※衝突処理は様々な方法があり、正解はない。
【詳細】
サンプルソース
実行結果

中央に壁があり、右へ行こうとしても行けないのである。
侵入した段階で移動を止めたり、座標を代入したりせず、ほんの少しだけ押し出してあげることで、『壁の中にいる』を防ぐことができる。
これをベースに色々と改良して各々のゲームに組み込んで欲しい。