自機ショットのある焦点への集約
Posted: 2010年11月10日(水) 13:39
5発、自機の周りからショットを出し、
(自機のx座標,自機のy座標から-100)の座標めがけて
集約したいと考え、
double cshotatan2(int k){
return atan2(cshot[k].x-ch.x,cshot[k].y-(ch.y-100));
}
void ch_pattern_Nomal(){
int k;
for(int i=0;i<cshot0num[ch.power<200?0:1];i++){
if((k=search_cshot())!=-1){
cshot[k].flag=1;
cshot[k].cnt=0;
cshot[k].spd=20;
cshot[k].x=ch.x+cshot0pos_x/3;
cshot[k].y=ch.y+cshot0pos_y;
cshot[k].angle=cshotatan2(k);
cshot[k].power=23;
cshot[k].knd=0;
}
}
se_flag[2]=1;
}
のようなコードにしたのですが、実行するとななめ左にショットが行ってしまいます。
敵の自機狙いは、自機と敵ショットの角度をとればいいように、
焦点をさだめ、そこに狙いをつけるにはどうしたらいいか
助言がいただけたらと思います。
簡易の状況の絵を一応添付しておきます。
(自機のx座標,自機のy座標から-100)の座標めがけて
集約したいと考え、
double cshotatan2(int k){
return atan2(cshot[k].x-ch.x,cshot[k].y-(ch.y-100));
}
void ch_pattern_Nomal(){
int k;
for(int i=0;i<cshot0num[ch.power<200?0:1];i++){
if((k=search_cshot())!=-1){
cshot[k].flag=1;
cshot[k].cnt=0;
cshot[k].spd=20;
cshot[k].x=ch.x+cshot0pos_x/3;
cshot[k].y=ch.y+cshot0pos_y;
cshot[k].angle=cshotatan2(k);
cshot[k].power=23;
cshot[k].knd=0;
}
}
se_flag[2]=1;
}
のようなコードにしたのですが、実行するとななめ左にショットが行ってしまいます。
敵の自機狙いは、自機と敵ショットの角度をとればいいように、
焦点をさだめ、そこに狙いをつけるにはどうしたらいいか
助言がいただけたらと思います。
簡易の状況の絵を一応添付しておきます。