Ok, so I want to make two rings of bullets (angles opposite to each other), and now I'm ending up with spinning bullets in the corners. I actually find that quite cool, but how can I include the second ring of bullets? And can you have two while loops?
#TouhouDanmakufu
#Title[Test 4: ?J???@?u???z???v]
#Text[Can you escape this illusionary gate?]
#Player[FREE]
#Image[.\img\lulzsmiley.png]
#BGM[.\bgm\necroremix.mp3]
#ScriptVersion[2]
script_enemy_main{
let CSD = GetCurrentScriptDirectory;
let imgBoss = CSD ~ "img\yukarisprite.png";
let cut = CSD ~ "img\yukaricutin.png";
let bg = CSD ~ "img\eyebg.png";
let timer = 157;
@Initialize{
SetLife(5000);
SetTimer(60);
SetScore(103600);
//SetDurableSpellCard;
SetMovePosition01(GetCenterX,100,5);
LoadGraphic(imgBoss);
LoadGraphic(cut);
LoadGraphic(bg);
CutIn(YOUMU,"?J?? ?u???z???v",cut,0,0,600,553);
SetEnemyMarker(true);
Concentration01(120);
MagicCircle(true);
mainTask;
}
@MainLoop{
SetCollisionA(GetX,GetY,28);
SetCollisionB(GetX,GetY,20);
yield;
}
@DrawLoop{
SetTexture(imgBoss);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(0,0,128,128);
SetGraphicScale(0.6,0.6);
SetGraphicAngle(0,0,0);
DrawGraphic(GetX,GetY);
}
@Background{
SetTexture(bg);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(0,0,300,300);
SetGraphicScale(1,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetCenterX,GetCenterY);
}
@Finalize{
DeleteGraphic(imgBoss);
DeleteGraphic(cut);
DeleteGraphic(bg);
}
task mainTask{
wait(90);
fire;
yield;
}
task fire{
let x = 0;
let dir = 0;
loop{
CreateShotA(1,GetX,GetY,30);
SetShotDataA(1,0,5,GetAngleToPlayer,0.05,-0.07,3,PURPLE01);
SetShotDataA(1,60,5,GetAngleToPlayer,0.1,-0.07,3,PURPLE01);
FireShot(1);
CreateShotA(2,GetX,GetY,30);
SetShotDataA(2,0,6,GetAngleToPlayer,0.001,0.001,9,PURPLE01);
FireShot(2);
CreateShotA(6,GetX,GetY,30);
SetShotDataA(6,0,5,GetAngleToPlayer,-0.05,-0.07,3,PURPLE01);
SetShotDataA(6,60,5,GetAngleToPlayer,-0.1,-0.07,3,PURPLE01);
FireShot(6);
while(x<36){
CreateShotA(4,GetX+60*cos(dir),GetY+80*sin(dir),30);
SetShotDataA(4,0,5,dir,0,0,0,PURPLE11);
SetShotDataA(4,60,5,dir,60,0.1,2,PURPLE11);
FireShot(4);
dir+=360/60;
x++;
}
//while(x<36){
//CreateShotA(5,GetX+60*cos(dir),GetY+80*sin(dir),30);
//SetShotDataA(5,0,5,dir,0,0,0,PURPLE11);
//SetShotDataA(5,60,5,dir,-1.9,0,2,PURPLE11);
//FireShot(5);
//dir+=360/60;
//x++;
//}
x=0;
dir=0;
CreateLaserA(0,GetX,GetY,400,20,PURPLE03,0);
SetLaserDataA(0,0,0,1,-1,2,180);
SetShotKillTime(0,180);
FireShot(0);
CreateLaserA(3,GetX,GetY,400,20,PURPLE03,0);
SetLaserDataA(3,0,180,-1,-1,-2,180);
SetShotKillTime(3,180);
FireShot(3);
wait(60);
}
}
function wait(w){
loop(w){yield;}
}
}
[/color]