解決と思っていた回転処理なんですが、あの後色々と試しました。ですが、敵の画像の角度を斜めに傾ける
くらいしかできませんでした。敵が発生したときに、敵の画像が360°に傾いたままで、回転しなかったです。
念のためコードを提示します。
//敵2の発生------------------------------------------------------------------------------------
void Enemy2Set(void)
{
int i;
float rotate=0;
gEnemy2rotateTimer++;
//敵2の数をループ
for(i=0; i<ENEMY2_MAX; i++)
{
//敵2が存在しなければ
if( gEnemy2[i].flg == OFF)
{
Enemy2SetOne(i, rotate); //敵2の発生の実施を行う
}
}
//敵2の回転をループさせる
for( rotate=0; rotate < gEnemy2rotateTimer; rotate++)
{
if( gEnemy2[i].flg == OFF)
{
Enemy2SetOne(i,rotate);
}
}
}
//敵2の発生の実施-------------------------------------------------------------------------------
void Enemy2SetOne(int i, float rotate)
{
//1/300の確率
if(rand()%300 == 0)
{
gEnemy2[i].flg = ON; //敵2が存在している
gEnemy2[i].x = (float)(rand()%1010); //敵2のX座標をランダムに設定
gEnemy2[i].y = -200; //敵2のY座標をランダムに設定
gEnemy2[i].w = 60; //敵2の幅
gEnemy2[i].h = 58; //敵2の高さ
gEnemy2[i].tw = 60; //敵2先の幅
gEnemy2[i].th = 60; //敵2先の高さ
if( gEnemy2[i].flg == ON)
{
gEnemy2[i].rotate = 360;
}
}
//1/5の確率
if(rand()%3 == 0)
{
gEnemy2[i].dir = 4; //右向き
}
else
{
gEnemy2[i].dir = -4; //左向き
}
if( gScore >= 1500)
{
gEnemy2[i].type = TYPE2;
}
else
{
gEnemy2[i].flg = OFF;
}
}
画像の角度を変えて傾けることはできました。
ただ、その後にfor文を使ったりして色々と試したりしましたが、うまくいきませんでした。
やりたいことはあまり変わらないのですが、
「まずrotate変数を0に初期化。そしてゲームプレイに移動後、敵が発生したら回転タイマーを加算して、タイマーがrotate変数より大きければ敵の画像を回転させる。タイマーが100になった時に0に戻してまた回転させる。」と言った処理を行いたかったのですが、うまくいきませんでした。for文を使用すれば無限に左回りしてくれると思ったんですが・・。