ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

論理式

Sunaba本でキー入力を判定してキャラクターを移動させる部分を読む。
前フレームで入力が無くて今回入力があったときにキャラを移動させるというのを論理式で実装している。
例えばC言語で書いてみたら、次のような感じかな。

int x; // キャラx座標
int input(); // カーソルキーの右が押されていると1、押されていないと0を返す関数
int preInput = 0; // 前フレームのキー入力状態

while( 1 ) {
  int nowInput = input();
  x = x + ( nowInput * (1-preInput) );
  preInput = nowInput;
}

座標の変化が1つの式で表すことが出来ている。コードを書くときは最初からこうは思いつかず、まずはif文で書くだろう。

if ( nowInput == 1 && preInput == 0 ) {
 x = x + 1;
}

下のほうが一目見て何をしているか分かるという利点はある。
そういえば、プチコンでコードを書いたときは短くしたかったので、式を使ってキャラ移動を書いたのを思い出した。