敵を倒したら得点や体力がupするアイテムが倒した敵の位置から出現するようにアイテムを実装したのですが,なぜか敵を倒した位置のままで止まってしまい,動きません。また,複数個アイテムを出現させようとすると,消えてしまいます(同時に1つしか出現させられません)。
なぜでしょうか?
//アイテムの構造体
typedef struct{
double x,y,speed;
int flag,kind,range;
}item_t;
item_t item[item_kosuu];
//アイテムの種類によって発動させる効果を変化させる
void ItemEffect()
{
for(int i=0; i<item_kosuu; i++){
switch(item[i].kind)
{
case 1:
Player.score++;
break;
case 2:
Player.hp++;
break;
case 3:
bomb.kosuu++;
break;
default:
break;
}
}
}
//アイテムの描画
void Itemdraw()
{
for(int i=0; i<item_kosuu; i++){
if(item[i].flag == 1)
{
switch(item[i].kind)
{
case 1:
DrawGraph(item[i].x,item[i].y,item1,TRUE);
break;
case 2:
DrawGraph(item[i].x,item[i].y,item2,TRUE);
break;
case 3:
DrawGraph(item[i].x,item[i].y,item3,TRUE);
break;
default:
break;
}
}
}
}
//省略 Playerの弾と敵の当たり判定
//敵に弾が当たったらそこにアイテムを出現させy座標をあげていき落としていく
for(int i=0; i<item_kosuu; i++){
item[i].x=enemy[s].x;
item[i].y=enemy[s].y;
item[i].flag=1;
item[i].range=20;
if(item[i].flag==1)
{
double ix,iy;
ix=Player.x-item[i].x;
iy=Player.y-item[i].y;
item[i].y+=2;
Itemdraw();
if(sqrt(ix*ix+iy*iy) < Player.range+item[i].range)
{
ItemEffect();
item[i].flag=0;
}
}
}