今回は、プログラムを共同作成中の仲間からちょっとした質問です。
マップの表示には、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); } }