ゲームではたくさんのフラグが必要になります 例えばbool型でフラグの数だけ定義すると・・・ bool isUP; // キー上が押された bool isDown; // キー下が押された bool isRight;// キー右が押された bool isLeft; // キー左が押された のようにフラグ単位で変数を用意する羽目になります 以下にサンプルを示します #include <stdio.h> // フラグの作り方 // 各ビットの桁がフラグとして扱える enum MOVEFLAG{ UP = (1 << 0), // シフト演算でずらして各桁のビットを立てる DOWN = (1 << 1), LEFT = (1 << 2), RIGHT = (1 << 3) }; int main() { // int型はWindows環境下では32bitの変数として扱える // つまり、最大32個のフラグを格納できる // 0で初期化 int flag = 0; // フラグを立てたい場合はOR演算 flag |= UP; // OR演算の組み合わせで同時に複数のフラグを立てることができる flag |= (RIGHT | LEFT); // フラグが立っているかどうか調べるにはAND演算を使う if(flag & UP){ printf("UP\n"); } // UPかつRIGHTの場合 if( (flag & UP) && (flag & RIGHT)){ printf("UP and RIGHT\n"); } // フラグを降ろしたい場合はXORとANDを組み合わせる flag &= (flag ^ UP); if(flag & UP){ printf("UP\n"); } // 一括で降ろしたい場合 flag &= (flag ^ (LEFT | RIGHT)); if( (flag & LEFT) || (flag & RIGHT)){ printf("LEFT or RIGHT\n"); } return 0; } さらに興味がある人はstd::bitsetで調べてみると良いと思います vote(理解できた(^ω^)[12],なんぞこれーΣ(゚д゚lll)[0],ちょっと理解できないですね(´・ω・`)[0]) |