質問内容
質問を評価する
(0ポイント)
|
現在、シューティングを他のサイト等を参考に 作成しているのですが、敵からの攻撃の挙動についての 質問です。
敵からの攻撃で複数の弾を発射forループを用いて発射 させたいのですが、どうも処理が速すぎて複数の弾が 重なってしまい1つの弾の様に見えてしまうのですが どのようにしたら上手くいくのでしょうか?
お見苦しいながら弾丸の処理のソースコードをはらして頂きます。 よろしくお願いします。 teki.num=行動乱数
////////////敵の攻撃/////////////////////////////////////////// if (count%20==0) { switch(teki.num) { case 0: //適当撃ち { for(i=0; i<4; i++) { Eshotw = new Shot(); Eshotw.Set((int)teki.x,(int)teki.y,0,0); Eshotw.ougi(rad,8); tekilist.add(Eshotw); } count=0; } break; case 1: //右回りに発射 { for(i=0;i<1800;i++) { if(i%100==0) { Eshotw = new Shot(); Eshotw.Set((int)teki.x+10,(int)teki.y+10,0,0); Eshotw.Rot(i/100*20,7); tekilist.add(Eshotw); } } count=0; } break; case 2: //5ショット { for(i=0; i<1000; i++) { if(i%200==0) { Eshotw = new Shot(); //shotw.Set(3,i*20+40,i*10*50,i*4,i*4+8); //Eshotw.Set(i*40+(int)teki.x-160,(int)teki.y+50-i*10,i*2,10-i); Eshotw.Set((int)teki.x+10,(int)teki.y+10,0,0); Eshotw.ougi(rad,10-shotspeed); tekilist.add(Eshotw); shotspeed++; } } count=0; } break; case 3://ばらまき { for(i=0; i<10000; i++) { if(i%1000==0) { Eshotw = new Shot(); //shotw.Set(3,i*20+40,i*10*50,i*4,i*4+8); //Eshotw.Set(i*40+(int)teki.x-160,(int)teki.y+50-i*10,i*2,10-i); Eshotw.Set((int)teki.x+10,(int)teki.y+10,0,0); Eshotw.ougi(rad,5); tekilist.add(Eshotw); } } count=0; } break; } teki.num=(int)((4)*Math.random( )); }
|