龍神録プログラミングの館8章について
Posted: 2008年8月02日(土) 16:10
勉強さしてもらってます。
//パッドとキーボードの両方の入力をチェックする関数
で配列とポインタを使ってかいてみたのですが短くなっている気がしません。
プログラムは初心者です。どこを直せばもっと短く、きれいになるか教えてください。
void GetHitPadStateAll(){
int i,PadInput,mul=1,*p;
PadInput = GetJoypadInputState( DX_INPUT_PAD1 );//パッドの入力状態を取得
for(i=0;i<16;i++){
if(PadInput & mul) pad.key++;
else pad.key=0;
mul*=2;
}
int q[/url]={configpad.left,configpad.up,configpad.right,configpad.down,
configpad.shot,configpad.bom,configpad.slow,configpad.start,
configpad.change};
p=&q[0];
int s[/url]={KEY_INPUT_LEFT,KEY_INPUT_UP,KEY_INPUT_RIGHT,KEY_INPUT_DOWN,KEY_INPUT_Z,
KEY_INPUT_X,KEY_INPUT_LSHIFT,KEY_INPUT_ESCAPE,KEY_INPUT_LCONTROL};
for(int i=0;i<9;i++)
input_pad_or_key(&pad.key[*(p+i)] ,CheckStateKey(s));
}
//パッドとキーボードの両方の入力をチェックする関数
で配列とポインタを使ってかいてみたのですが短くなっている気がしません。
プログラムは初心者です。どこを直せばもっと短く、きれいになるか教えてください。
void GetHitPadStateAll(){
int i,PadInput,mul=1,*p;
PadInput = GetJoypadInputState( DX_INPUT_PAD1 );//パッドの入力状態を取得
for(i=0;i<16;i++){
if(PadInput & mul) pad.key++;
else pad.key=0;
mul*=2;
}
int q[/url]={configpad.left,configpad.up,configpad.right,configpad.down,
configpad.shot,configpad.bom,configpad.slow,configpad.start,
configpad.change};
p=&q[0];
int s[/url]={KEY_INPUT_LEFT,KEY_INPUT_UP,KEY_INPUT_RIGHT,KEY_INPUT_DOWN,KEY_INPUT_Z,
KEY_INPUT_X,KEY_INPUT_LSHIFT,KEY_INPUT_ESCAPE,KEY_INPUT_LCONTROL};
for(int i=0;i<9;i++)
input_pad_or_key(&pad.key[*(p+i)] ,CheckStateKey(s));
}