龍神録プログラミング 8.キーコンフィグに対応させてみよう
Posted: 2010年2月10日(水) 00:52
c言語歴は2カ月ちょっとで基礎中の基礎が分かるきらいの初心者です。
龍神録プログラミング 8.キーコンフィグに対応させてみようについて
質問させてもらいます。
//パッドとキーボードの両方の入力をチェックする関数
void GetHitPadStateAll(){
int i,PadInput,mul=1;
PadInput = GetJoypadInputState( DX_INPUT_PAD1 );//パッドの入力状態を取得
for(i=0;i<16;i++){
if(PadInput & mul) pad.key++;
else pad.key=0;
mul*=2;
}
input_pad_or_key(&pad.key[configpad.left] ,CheckStateKey(KEY_INPUT_LEFT ));
input_pad_or_key(&pad.key[configpad.up] ,CheckStateKey(KEY_INPUT_UP ));
input_pad_or_key(&pad.key[configpad.right] ,CheckStateKey(KEY_INPUT_RIGHT ));
input_pad_or_key(&pad.key[configpad.down] ,CheckStateKey(KEY_INPUT_DOWN ));
input_pad_or_key(&pad.key[configpad.shot] ,CheckStateKey(KEY_INPUT_Z ));
input_pad_or_key(&pad.key[configpad.bom] ,CheckStateKey(KEY_INPUT_X ));
input_pad_or_key(&pad.key[configpad.slow] ,CheckStateKey(KEY_INPUT_LSHIFT ));
input_pad_or_key(&pad.key[configpad.start] ,CheckStateKey(KEY_INPUT_ESCAPE ));
input_pad_or_key(&pad.key[configpad.change] ,CheckStateKey(KEY_INPUT_LCONTROL));
}
のif(PadInput & mul)の部分が分かりません…
PadInputとmulのアドレスがいっしょだったら真の条件だということでしょうか?
それmul*=2の部分なんですけど、なぜこのような処理を行わけければならないのかが分かりません…
このmul*=2の処理を行うことで、どのような意味があるでしょうか??
それともう一つあって、パッドとコンフィグの意味がいまいちわからない状態です。
すみませんが、ご回答をお願いします!
龍神録プログラミング 8.キーコンフィグに対応させてみようについて
質問させてもらいます。
//パッドとキーボードの両方の入力をチェックする関数
void GetHitPadStateAll(){
int i,PadInput,mul=1;
PadInput = GetJoypadInputState( DX_INPUT_PAD1 );//パッドの入力状態を取得
for(i=0;i<16;i++){
if(PadInput & mul) pad.key++;
else pad.key=0;
mul*=2;
}
input_pad_or_key(&pad.key[configpad.left] ,CheckStateKey(KEY_INPUT_LEFT ));
input_pad_or_key(&pad.key[configpad.up] ,CheckStateKey(KEY_INPUT_UP ));
input_pad_or_key(&pad.key[configpad.right] ,CheckStateKey(KEY_INPUT_RIGHT ));
input_pad_or_key(&pad.key[configpad.down] ,CheckStateKey(KEY_INPUT_DOWN ));
input_pad_or_key(&pad.key[configpad.shot] ,CheckStateKey(KEY_INPUT_Z ));
input_pad_or_key(&pad.key[configpad.bom] ,CheckStateKey(KEY_INPUT_X ));
input_pad_or_key(&pad.key[configpad.slow] ,CheckStateKey(KEY_INPUT_LSHIFT ));
input_pad_or_key(&pad.key[configpad.start] ,CheckStateKey(KEY_INPUT_ESCAPE ));
input_pad_or_key(&pad.key[configpad.change] ,CheckStateKey(KEY_INPUT_LCONTROL));
}
のif(PadInput & mul)の部分が分かりません…
PadInputとmulのアドレスがいっしょだったら真の条件だということでしょうか?
それmul*=2の部分なんですけど、なぜこのような処理を行わけければならないのかが分かりません…
このmul*=2の処理を行うことで、どのような意味があるでしょうか??
それともう一つあって、パッドとコンフィグの意味がいまいちわからない状態です。
すみませんが、ご回答をお願いします!