最初の一機だけは他の機体をしっかりと判定してくれるのですが、残りの機体は他の機体をスルーしてしまいます。
自分ではbattle内の関数emoveに問題があると思うのですが自分では全くどこが問題なのかわかりませんので一応全てのソースコードを載せます。
VC++2008 DXライブラリ使用 OSは7です。プログラミングは初心者です。
初心者故汚く読みにくいと思いますが何卒よろしくお願いします。
///////////////////////////////////////////////////////
#include <math.h>
#include "DxLib.h"
#include "enemyai.h"
#include "battle.h"
#define PI 3.141592654
char Key[256];
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
SetGraphMode( 800 , 600 , 32 ) ;
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //初期化処理
SetDrawScreen( DX_SCREEN_BACK ); //裏画面に設定
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
//int story();
battle_m();
ScreenFlip();
}
DxLib_End();
return 0;
}
////////////////////↓battleです////////////////////////////////////
#include <math.h>
#include "DxLib.h"
#include "enemyai.h"
#define PI 3.141592654
char bKey[256];
struct uni{
int image[20];
double x,y;
double rad;
int HP;
int size;
int walk;
int zyoutai;
int move,rock;
};
struct enemys{
int image[128];
int x[32],y[32];
int ecx[32],ecy[32];
double rad[32];
int HP[32];
int size[32];
int trigger[32];
int cHP[32];
int move[32];
int aicount[32];
int hitbullet[32];
int uniHP[32];
int bx[32],by[32];
int step[32];
int movech[32];
};
struct bullet{
double x,y;
int fl;
double rad;
};
struct enebullet{
double x[30],y[30];
int fl[30];
double rad[30];
};
struct obj{
int image[32];
int x[16],y[16];
int HP[16];
int size[16];
};
struct zyoukyou {
int image[5];
int speed;
int count;
int ecount;
int tyakudann,etyakudann;
int x,y,ex,ey;
//int hunteicount;
};
/*void battle_m(){
DrawFormatString( 0, 20, GetColor(0,0,0), "分割出来ています " );
}*/
void dainyuu(struct uni *mainuni,struct enemys *ene ,struct bullet *bullet,struct zyoukyou *fase,struct obj *obj,struct enebullet *ebullet){
int i,j;
mainuni->x=300;
mainuni->y=600;
mainuni->image[0]=LoadGraph("usvmm,body.png");
mainuni->image[1]=LoadGraph("leg1.png");
mainuni->image[2]=LoadGraph("leg10.png");
mainuni->image[3]=LoadGraph("leg11.png");
mainuni->image[4]=LoadGraph("mfl.png");
mainuni->image[5]=LoadGraph("mfl1.png");
mainuni->image[6]=LoadGraph("bom.png");
mainuni->image[7]=LoadGraph("bom1.png");
mainuni->image[8]=LoadGraph("bom2.png");
mainuni->walk=0;
mainuni->zyoutai=0;
mainuni->move;
mainuni->rock=0;
mainuni->size=20;
mainuni->HP=100000;
//mainuni->tyakudann;
ene->image[0]=LoadGraph("ene1.png");
ene->rad[0]=0;
ene->x[0]=300;
ene->y[0]=100;
ene->HP[0]=400;
ene->size[0]=60;
ene->image[1]=LoadGraph("usvmob1,2.png");
ene->rad[1]=0;
ene->x[1]=400;
ene->y[1]=300;
ene->HP[1]=200;
ene->size[1]=20;
ene->image[2]=LoadGraph("usvmob1,2.png");
ene->rad[2]=0;
ene->x[2]=500;
ene->y[2]=500;
ene->HP[2]=200;
ene->size[2]=20;//大きくしてみるか
ene->image[3]=LoadGraph("usvmob1,2.png");
ene->rad[3]=0;
ene->x[3]=100;
ene->y[3]=400;
ene->HP[3]=300;
ene->size[3]=20;
ene->image[4]=LoadGraph("usvmob1,2.png");
ene->rad[4]=0;
ene->x[4]=600;
ene->y[4]=250;
ene->HP[4]=300;
ene->size[4]=20;
ene->image[5]=LoadGraph("usvmob1,2.png");
ene->rad[5]=0;
ene->x[5]=700;
ene->y[5]=100;
ene->HP[5]=300;
ene->size[5]=20;
for(i=0;i<32;i++){
ene->trigger[i]=0; // 敵のtriggerですが、
ene->move[i]=0; //そうですか、私はmoveです
ene->aicount[i]=0; // あ、私はenemyaiで数、数えてます
ene->hitbullet[i]=0; //私は弾が当たるか見てます、最近目が疲れてきて・・・
ene->bx[i]=0;
ene->by[i]=0;
ene->step[i]=0;
ene->movech[i]=0;
}
obj->image[0]=LoadGraph("obj2.png");
obj->x[0]=400;
obj->y[0]=400;
obj->HP[0]=1000000000;
obj->size[0]=20;
obj->image[1]=LoadGraph("obj2.png");
obj->x[1]=80;
obj->y[1]=250;
obj->HP[1]=1000000000;
obj->size[1]=20;
for(j=0;j<32;j++){
for(i=0;i<30;i++){
ebullet[j].fl[i]=0;
}
ene->ecx[j]=0;
ene->ecy[j]=0;
}
for(i=0;i<30;i++){
bullet[i].fl=0;
}
fase->image[0]=LoadGraph("bullet.png");
fase->speed=10;
fase->count=5;
fase->ecount=5;
fase->tyakudann=0;
fase->etyakudann=0;
// fase->hunteicount=0;
}
void attack(struct bullet *bullet,struct uni *mainuni,struct zyoukyou *fase){
int i,mfl,mflc;
double x,y;
mfl=0;
mflc=0;
fase->count++;
if( CheckHitKey( KEY_INPUT_RETURN ) == 1 ){
mfl=1;
for(i=0;i<30;i++){
if(bullet[i].fl==0&&fase->count>=5){
bullet[i].fl=1;
bullet[i].rad=mainuni->rad;
bullet[i].x=mainuni->x+(sin(mainuni->rad)*-10)+cos(bullet[i].rad)*20;
bullet[i].y=mainuni->y+(cos(mainuni->rad)*10)+sin(bullet[i].rad)*20;
fase->count=0;
}
}///////
}
for(i=0;i<30;i++){
if((bullet[i].fl)==1){
bullet[i].x+=cos(bullet[i].rad)*fase->speed;
bullet[i].y+=sin(bullet[i].rad)*fase->speed;
DrawRotaGraph( (int)bullet[i].x, (int)bullet[i].y,1.0,bullet[i].rad+PI/2,fase->image[0], TRUE );
if(bullet[i].x>900||bullet[i].x<-100||bullet[i].y<-100||bullet[i].y>700){
bullet[i].fl=0;
}
}
}
if(mfl==1){
x=(int)mainuni->x+(int)(sin(mainuni->rad)*-10)+cos(mainuni->rad)*35;
y=(int)mainuni->y+(int)(cos(mainuni->rad)*10)+sin(mainuni->rad)*35;
mflc=GetRand(1)+4;
DrawRotaGraph((int) x ,(int) y , 1.0,mainuni->rad+PI/2, mainuni->image[mflc], TRUE );
}
}
///* 敵の射撃
void eneattack(struct enebullet *ebullet,struct zyoukyou *fase,struct enemys *ene,struct uni *mainuni){
int i,mflc;
double x[32];
double y[32];
int mfl[32];
for(i=0;i<32;i++){
mfl[i]=0;
}
int j;
for(j=0;j<32;j++){//仮につけマスタ
if (ene->HP[j]>0){
// mflc=0;
fase->ecount++;
if( ene->trigger[j] == 1 ){
mfl[j]=1;
for(i=0;i<30;i++){
if(ebullet[j].fl[i]==0&&fase->ecount>=5){
ebullet[j].fl[i]=1;
ebullet[j].rad[i]=ene->rad[j]+PI/2;
ebullet[j].x[i]=ene->x[j];
ebullet[j].y[i]=ene->y[j];
fase->ecount=0;
if(j==1){
//ebullet[j].x[i]+=(sin(ene->rad[j])*20);//+(cos(ebullet[j].rad[i])*20);
//ebullet[j].y[i]+=(cos(ene->rad[j])*20)+(sin(ebullet[j].rad[i])*20);
ebullet[j].x[i]+=(sin(ene->rad[j])* 16)+cos(ene->rad[j])* -8;
ebullet[j].y[i]+=(sin(ene->rad[j])*-8)+cos(ene->rad[j])* -16;
}
}
}
}
}
// int White=GetColor(0,0,0);
// DrawFormatString(100,200, White , "%d , %d" , (int)ebullet[j].x[i],i);
//for(j=0;j<32;j++){//仮に外しました
if(mfl[j]==1){
x[j]=(int)ene->x[j]+(int)(sin(ene->rad[j])*-26)+(int)(cos(ene->rad[j])* -8);
y[j]=(int)ene->y[j]+(int)(sin(ene->rad[j])*-8)+(int)(cos(ene->rad[j])*26);
mflc=GetRand(1)+4;
DrawRotaGraph((int) x[j] ,(int) y[j] , 1.0,ene->rad[j]-PI, mainuni->image[mflc], TRUE );
}
for(i=0;i<30;i++){
if((ebullet[j].fl[i])==1){
ebullet[j].x[i]+=cos(ebullet[j].rad[i])*fase->speed;
ebullet[j].y[i]+=sin(ebullet[j].rad[i])*fase->speed;
DrawRotaGraph( (int)ebullet[j].x[i], (int)ebullet[j].y[i],1.0,ebullet[j].rad[i]+PI/2,fase->image[0], TRUE );
if(ebullet[j].x[i]>900||ebullet[j].x[i]<-100||ebullet[j].y[i]<-100||ebullet[j].y[i]>700){
ebullet[j].fl[i]=0;
}
}
}
}
}
//↑敵の射撃
void enemy(struct enemys *ene,struct uni *mainuni,struct bullet *bullet,struct enebullet *ebullet,struct zyoukyou *fase){
int White;
int Green;
White=GetColor(0,0,0);
Green=GetColor(0,255,0);
int i=0;
double d[32];
double rad[32];
for(i=0;i<32;i++){
rad[i] = atan2(mainuni->y - ene->y[i], mainuni->x - ene->x[i])-(PI/2);
d[i] = rad[i] - ene->rad[i];
if (sin(d[i]) > 0) {
ene->rad[i] += 0.02;
} else {
ene->rad[i] -= 0.02;
}
DrawBox ( (int) ene->x[i] , (int)ene->y[i]-60 , (int)ene->x[i]+ene->HP[i] , (int)ene->y[i]-50 , Green , TRUE ) ;
if(ene->HP[i]>0){
DrawRotaGraph((int)ene->x[i],(int)ene->y[i],1.0,ene->rad[i], ene->image[i], TRUE );
}
}
//DrawFormatString(100,200, White , "x=%d y=%d " ,ene->HP,sin(d));
}
void huntei(struct bullet *bullet,struct uni *mainuni,struct zyoukyou *fase,struct enemys *ene,struct obj *obj){
int White;
White=GetColor(0,0,0);
int i,j,range;
for(j=0;j<32;j++){
range=ene->size[j]*ene->size[j];
for(i=0;i<30;i++){
if((range>((ene->x[j]-bullet[i].x)*(ene->x[j]-bullet[i].x)+(ene->y[j]-bullet[i].y)*(ene->y[j]-bullet[i].y))&&(bullet[i].fl==1))){
if(ene->HP[j]>0){
bullet[i].fl=0;
ene->HP[j]=ene->HP[j]-2;
if(fase->tyakudann==0){
fase->tyakudann=5;
fase->x=(int)bullet[i].x-10;
fase->y=(int)bullet[i].y-20;
}
}
}
}
}
//DrawFormatString(100,200, White , "x=%d y=%d mx=%d " ,ene->HP,3,3);
//obj のテスト
for(j=0;j<32;j++){
range=obj->size[j]*obj->size[j];
for(i=0;i<30;i++){
if((range>((obj->x[j]-bullet[i].x)*(obj->x[j]-bullet[i].x)
+(obj->y[j]-bullet[i].y)*(obj->y[j]-bullet[i].y))&&(bullet[i].fl==1))){
if(obj->HP[j]>0){
bullet[i].fl=0;
if(fase->tyakudann==0){
fase->tyakudann=10;
fase->x=(int)bullet[i].x-10;
fase->y=(int)bullet[i].y-20;
}
}
}
}
}
if(fase->tyakudann>0){
fase->tyakudann-=1;
DrawGraph( fase->x , fase->y ,mainuni->image[6+(GetRand(2))],TRUE);
}
}
void enehuntei(struct enebullet *ebullet,struct uni *mainuni,struct zyoukyou *fase,struct enemys *ene,struct obj *obj){
int White;
White=GetColor(0,0,0);
int i,j,k,range;
for(j=0;j<32;j++){
range=mainuni->size*mainuni->size;
for(i=0;i<30;i++){
if((range>((mainuni->x-ebullet[j].x[i])*(mainuni->x-ebullet[j].x[i])+
(mainuni->y-ebullet[j].y[i])*(mainuni->y-ebullet[j].y[i]))&&(ebullet[j].fl[i]==1))){
if(mainuni->HP>0){
ebullet[j].fl[i]=0;
mainuni->HP=mainuni->HP-2;
if(fase->etyakudann==0){
fase->etyakudann=10;
fase->ex=(int)ebullet[j].x[i]-10;
fase->ey=(int)ebullet[j].y[i]-20;
}
}
}
}
}
for(k=0;k<16;k++){//自機
for(j=0;j<16;j++){//僚機
range=obj->size[j]*obj->size[j];
for(i=0;i<30;i++){
if((range>((obj->x[j]-ebullet[k].x[i])*(obj->x[j]-ebullet[k].x[i])+(obj->y[j]-ebullet[k].y[i])
*(obj->y[j]-ebullet[k].y[i]))&&(ebullet[k].fl[i]==1))){
if(obj->HP[j]>0){
ebullet[k].fl[i]=0;
if(fase->etyakudann==0){
fase->etyakudann=10;
fase->ex=(int)ebullet[k].x[i]-10;
fase->ey=(int)ebullet[k].y[i]-20;
}
}
}
}
}
}
// 以下敵のフレンドリファイア判定
for(k=0;k<32;k++){//kは自機
for(j=0;j<32;j++){//jは他の敵機
range=ene->size[j]*ene->size[j];
if(j==k){
range=0;
}
for(i=0;i<30;i++){
if((range>((ene->x[j]-ebullet[k].x[i])*(ene->x[j]-ebullet[k].x[i])
+(ene->y[j]-ebullet[k].y[i])*(ene->y[j]-ebullet[k].y[i]))&&(ebullet[k].fl[i]==1))){
if(ene->HP[j]>0){
ebullet[k].fl[i]=0;
ene->HP[j]=ene->HP[j]-1;
if(fase->etyakudann==0){
fase->etyakudann=10;
fase->ex=(int)ebullet[k].x[i]-10;
fase->ey=(int)ebullet[k].y[i]-20;
}
}
}
}
}
}
if(fase->etyakudann>0){
fase->etyakudann-=1;
DrawGraph( fase->ex , fase->ey ,mainuni->image[6+(GetRand(2))],TRUE);
}
}
//}
void move(struct uni *mainuni,struct enemys *ene,struct obj *obj,struct zyoukyou *fase){
double x,y,cx[32],cy[32],s;
x=0;
y=0;
s=2;
int i;
int huntei=0;
int White;
White=GetColor(0,0,0);
mainuni->move=0;
if((mainuni->x>0)){
if( CheckHitKey( KEY_INPUT_A ) == 1 ){
x=-s;
mainuni->move=1;
}
}
if((mainuni->y<590)){
if( CheckHitKey( KEY_INPUT_S ) == 1 ){
y=s;
mainuni->move=1;
}
}
if((mainuni->x<790)){
if( CheckHitKey( KEY_INPUT_D ) == 1 ){
x=s;
mainuni->move=1;
}
}
if((mainuni->y>0)){
if( CheckHitKey( KEY_INPUT_W) == 1 ){
y=-s;
mainuni->move=1;
}
}
for(i=0;i<32;i++){
cx[i]=pow((ene->x[i]-(mainuni->x+x)),2);
cy[i]=pow((ene->y[i]-(mainuni->y+y)),2);
if(ene->HP[i]<=0){
ene->size[i]=0;
}
if((cx[i]+cy[i])<(ene->size[i]*ene->size[i])+(mainuni->size*mainuni->size)){
huntei=1;
}
}
for(i=0;i<32;i++){
cx[i]=pow((obj->x[i]-(mainuni->x+x)),2);
cy[i]=pow((obj->y[i]-(mainuni->y+y)),2);
if((cx[i]+cy[i])<(obj->size[i]*obj->size[i])+(mainuni->size*mainuni->size)){
huntei=1;
}
}
if(huntei==0){
DrawFormatString(100,140, White , "判定発生" );
mainuni->x=mainuni->x+x;
mainuni->y=mainuni->y+y;
}
/////////////////////////
if(fase->count%5==0){
if( CheckHitKey( KEY_INPUT_UP) == 1 ){
if(ene->HP[mainuni->rock+1]>0){
mainuni->rock+=1;
}
}
if( CheckHitKey( KEY_INPUT_DOWN) == 1 ){
if(ene->HP[mainuni->rock-1]>0){
mainuni->rock-=1;
}
}
}
////////////////////
if(ene->HP[mainuni->rock]>0){
mainuni->rad=atan2(ene->y[mainuni->rock]-mainuni->y,ene->x[mainuni->rock]-mainuni->x);
}else{
mainuni->rad=-PI/2;
}
mainuni->zyoutai=mainuni->zyoutai+1;
if((mainuni->zyoutai%10)==1){
if(mainuni->move==1){
mainuni->walk=mainuni->walk+1;
}
}
if(mainuni->walk==4){
mainuni->walk=0;
//mainuni->zyoutai=0;
}
if(mainuni->walk==0||mainuni->walk==2){
DrawRotaGraph( (int)mainuni->x, (int)mainuni->y,1.0,mainuni->rad+PI/2, mainuni->image[1], TRUE ); //静止
}
if(mainuni->walk==1){
DrawRotaGraph( (int)mainuni->x, (int)mainuni->y,1.0,mainuni->rad+PI/2, mainuni->image[2], TRUE ); //移動
}
if(mainuni->walk==3){
DrawRotaGraph( (int)mainuni->x, (int)mainuni->y,1.0,mainuni->rad+PI/2, mainuni->image[3], TRUE ); //移動
}
DrawRotaGraph( (int)mainuni->x, (int)mainuni->y,1.0,mainuni->rad+PI/2, mainuni->image[0], TRUE );//上半身
DrawFormatString(100,100, White , "x=%d y=%d mx=%d " ,(int)mainuni->x,(int)mainuni->y,10);
}
int map(int mapimg){
DrawGraph(0,0,mapimg,TRUE);
return 0;
}
void object(struct obj *obj){
int i;
for(i=0;i<32;i++){
if(obj->HP[i]>0){
DrawRotaGraph(obj->x[i],obj->y[i],1.0,0,obj->image[i],TRUE);
}
}
}
void emove(struct uni *mainuni,struct enemys *ene,struct obj *obj){
double cx[32],cy[32];
int huntei[32]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int i,j;
//xとyは移動分 構造体を e aiから
for(j=0;j<32;j++){
for(i=0;i<32;i++){
if(i==!j){
cx[i]=pow((double)(ene->x[i]-(ene->x[j]+ene->ecx[j])),2);
cy[i]=pow((double)(ene->y[i]-(ene->y[j]+ene->ecy[j])),2);
if(ene->HP[i]<=0){
ene->size[i]=0;
}
if((cx[i]+cy[i])<((ene->size[i]*ene->size[i])+(ene->size[j]*ene->size[j]))){
huntei[j]=1;
}
}
}
cx[j]=pow((double)(mainuni->x-(ene->x[j]+ene->ecx[j])),2);
cy[j]=pow((double)(mainuni->y-(ene->y[j]+ene->ecy[j])),2);
if((cx[j]+cy[j])<((mainuni->size*mainuni->size)+(ene->size[j]*ene->size[j]))){
huntei[j]=1;
}
for(i=0;i<32;i++){
cx[i]=pow((double)(obj->x[i]-(ene->x[j]+ene->ecx[j])),2);
cy[i]=pow((double)(obj->y[i]-(ene->y[j]+ene->ecy[j])),2);
if((cx[i]+cy[i])<(obj->size[i]*obj->size[i])+(ene->size[j]*ene->size[j])){
huntei[j]=1;
}
}
if(((ene->x[j]+ene->ecx[j])>(790))||((ene->x[j]+ene->ecx[j])<(0))
||((ene->y[j]+ene->ecy[j])<(0)) ||((ene->y[j]+ene->ecy[j])>(590))){
huntei[j]=1;
}
if(huntei[j]==0){
ene->x[j]+=ene->ecx[j];
ene->y[j]+=ene->ecy[j];
}
}
}
void battle_m(){
int i;
int mapimg;
mapimg=LoadGraph("usmap1.png");
struct uni mainuni;
struct enemys ene;
struct zyoukyou fase;
struct bullet bullet[30];
struct enebullet ebullet[32];
struct obj obj;
dainyuu(&mainuni,&ene,bullet,&fase,&obj,ebullet);
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( bKey ) && !bKey[KEY_INPUT_ESCAPE]){
map(mapimg);
object(&obj);
eneattack(ebullet,&fase,&ene,&mainuni);
enemyai_ai(bullet,ebullet,&ene,&mainuni,&fase,&obj);
enemy(&ene,&mainuni,bullet,ebullet,&fase);
emove(&mainuni,&ene,&obj);
if(mainuni.HP>0){
move(&mainuni,&ene,&obj,&fase);
attack(bullet,&mainuni,&fase);
}
huntei(bullet,&mainuni,&fase,&ene,&obj);
enehuntei(ebullet,&mainuni,&fase,&ene,&obj);
ScreenFlip();
}
}
/////////////////////////↓enemyaiです//////////////////////////////////
#include"DxLib.h"
struct uni{
int image[20];
double x,y;
double rad;
int HP;
int size;
int walk;
int zyoutai;
int move,rock;
};
struct enemys{
int image[128];
int x[32],y[32];
int ecx[32],ecy[32];
double rad[32];
int HP[32];
int size[32];
int trigger[32];
int cHP[32];
int move[32];
int aicount[32];
int hitbullet[32];
int uniHP[32];
int bx[32],by[32];
int step[32];
int movech[32];
};
struct bullet{
double x,y;
int fl;
double rad;
};
struct enebullet{
double x[30],y[30];
int fl[30];
double rad[30];
};
struct obj{
int image[32];
int x[16],y[16];
int HP[16];
int size[16];
};
struct zyoukyou {
int image[5];
int speed;
int count;
int ecount;
int tyakudann,etyakudann;
int x,y,ex,ey;
};
void mainai(int i,struct enemys *ene,struct enebullet *ebullet){
DrawFormatString( 0, 0, GetColor(0,0,0), " %d" ,ene->aicount[i]%5);// ene->trigger[1]);
ene->aicount[i]+=1;
int x,y;
x=0;
y=0;
DrawFormatString( 0, 160, GetColor(0,0,0), "ene 1 HP %d ene 2 HP %d ",ene->HP[1],ene->HP[2] );
//↓攻撃されたら移動する
if(ene->aicount[i]%5==0){
ene->cHP[i]=ene->HP[i];
}
if(ene->HP[i]<(ene->cHP[i])){
ene->move[i]=1;
}
if(ene->move[i]==1){
if((ene->bx[i]==ene->x[i])&&(ene->by[i]==ene->y[i])){
ene->step[i]+=1;
if(ene->step[i]==9){
ene->step[i]=0;
}
ene->movech[i]+=1;
// ene->movech[i]=0;
// if(ene->movech[i]==3){
// ene->step[i]-=1;
// ene->ecx[i]*=-8;
// ene->ecy[i]*=-8;
//
//DrawFormatString( 0, 20, GetColor(0,0,0), "前座標と同一 %d %d" ,ene->bx[1],(int)ene->x[1]);
DrawFormatString( 0, 20, GetColor(0,0,0), "step0 %d ",ene->step[0] );
DrawFormatString( 0, 40, GetColor(0,0,0), "step1 %d ",ene->step[1] );
if(ene->step[i]==1){
ene->ecx[i]=3;
}
if(ene->step[i]==2){
ene->ecx[i]=0;
ene->ecy[i]=2;
}
if(ene->step[i]==3){
ene->ecx[i]=-1;
ene->ecy[i]=-2;
}
if(ene->step[i]==4){
ene->ecx[i]=0;
ene->ecy[i]=1;
}
if(ene->step[i]==5){
ene->ecy[i]=2;
}
if(ene->step[i]==6){
ene->ecy[i]=-2;
}
if(ene->step[i]==7){
ene->ecx[i]=-2;
ene->ecy[i]=-2;
}
if(ene->step[i]==8){
ene->ecx[i]=2;
ene->ecy[i]=0;
}
// DrawFormatString( 0, 40, GetColor(0,0,0), "敵座標 %d %d" ,ene->x[1],(int)ene->y[1]);
DrawFormatString( 0, 60, GetColor(0,0,0), "敵前回座標との差分 %d %d" ,(ene->bx[i]-ene->x[i]),ene->by[i]-ene->y[i]);
}
//if(ene->aicount[1]%5==0){
ene->bx[i]=ene->x[i];
ene->by[i]=ene->y[i];
}
ene->trigger[i]=0;
//↑
//攻撃当たって無かったら移動する
//if(ebullet[1]->fl[5]==1){
//
// }
//
//ene->cHP[1]=ene->HP[1];
//ene->ecy[i]=-1;
}
void enemyai_ai(struct bullet *bullet,struct enebullet *ebullet,struct enemys *ene,struct uni *mainuni,struct zyoukyou *fase,struct obj *obj){
int i;
for(i=0;i<32;i++){
//i=1;
if(ene->HP[i]>0){
mainai(i,ene,ebullet);
}
}
//ene->trigger[1]=1;
//ene->ecx[1]=-1;
// DrawFormatString( 0, 0, GetColor(0,0,0), " %d" ,);// ene->trigger[1]);
}