私もそれを利用しようと改造してみたら、うまくいきません。調べてみるとうまく代入されてないようで、
おそらく関数ポインタの引数が原因ではないかという結論に至りました。
しかし、これだと思うものにしてみたら、コンパイルが通りません。
どうすればいいでしょうか?
extern void enemy_pattern0(enemy_t *enemy);
void (*enemy_pattern[ENEMY_PATTERN_MAX])(enemy_t *enemy) = {
enemy_pattern0(enemy),
};
void calc_enemy(){
enemy_t *p;
p=head_enemy;
if(p!=NULL)
while(p!=NULL){
if(p->flag==1){
if(p->pattern<ENEMY_PATTERN_MAX)
enemy_pattern[p->pattern](p);
}
p=p->next;
}
}
//移動パターン0
//下がってきて停滞して上がっていく
void enemy_pattern0(enemy_t *enemy){
int t=enemy->cnt;
if(t==0)
enemy->vy=3;//下がってくる
if(t==40)
enemy->vy=0;//止まる
if(t==enemy->wait)//登録された停滞時間だけして
enemy->vy=-3;//上がっていく
}