今回は、プログラムを共同作成中の仲間からちょっとした質問です。
マップの表示には、0、1、2とサイトでは役割がありますが、2のところの敵の遭遇を変更して、敵キャラがその”2”を中心にして円を描くように動くプログラムは作れないのか?と言う質問です。何度か挑戦はしているのですが、SINの値の書き方や、その他諸々がまだ勉強中なのでうまく動きません
書き方を教えてください。
自分もとはイベント係だったのでよく分かりません。


int hantei[15][20] = {
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,2,0,0,0,0,0,0,0,0,2,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,2,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,2,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,2,1,1 },
{ 1,1,1,1,1,0,2,0,0,0,1,0,2,0,1,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1 },
{ 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,2,0,1,1 },
{ 1,1,1,1,1,0,0,2,0,0,0,0,2,0,0,0,0,0,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
};
とし、

void EnemyPattern4(int i){ //ぐるぐる回る
if(enemy.counter<100)
enemy.x-=2.5f;
if(enemy.counter>=100){
float r = 2.5f; // 半径
float cx = 10f; // 中心のX座標
float cy = 10f; // 中心のY座標
float theta = PI*(enemy.counter-100.0f)/160.0f;
enemy.x = cx + r * cos(theta);
enemy.y = cy - r * sin(theta);
}
}for(int i=0;i<258;++i) × for(int i=0;i<256;++i) ○に訂正を。危ないことしてました・・・


struct Enemy {
// これを追加する
float cx;
float cy;
};
void EnemyPattern4(int i){ //ぐるぐる回る
float r = 2.5f; // 半径
if(enemy.counter<100)
enemy.x-=2.5f;
if (enemy.counter==100) {
enemy.cx = enemy.x - r;
enemy.cy = enemy.y;
}
if(enemy.counter>=100){
float theta = PI*(enemy.counter-100.0f)/160.0f;
enemy[i].x = enemy[i].cx + r * cos(theta);
enemy[i].y = enemy[i].cy - r * sin(theta);
}
}