#TouhouDanmakufu #Title[Integral Test] #Player[FREE] #ScriptVersion[2] script_enemy_main {let OhMyGodWhatIsThisVariableIDontEven = -120;let WhyAreThereSoManyLongVariableNamesInHere = 0;let NeedlesslyComplicatedVariableNamesAreFun = 0; @Initialize{SetLife(3000);SetScore(5000000);SetMovePosition03(GetCenterX, GetCenterY, 20, 5)} @MainLoop{SetCollisionA(GetX, GetY, 48);SetCollisionB(GetX, GetY, 32);if(OhMyGodWhatIsThisVariableIDontEven%5==0 && OhMyGodWhatIsThisVariableIDontEven>0){NeedlesslyComplicatedVariableNamesAreFun = integral(-5, sin(OhMyGodWhatIsThisVariableIDontEven), 64, "cos(x)")*4-20.2;let WhyWouldYouDoThisOhGod = absolute(NeedlesslyComplicatedVariableNamesAreFun);;if(WhyWouldYouDoThisOhGod<0.5){WhyWouldYouDoThisOhGod = 0.5}CreateShot01(GetX+cos(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);CreateShot01(GetX+cos(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);CreateShot01(GetX+cos(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);CreateShot01(GetX+cos(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);CreateShot01(GetX+cos(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);CreateShot01(GetX+cos(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);WhyAreThereSoManyLongVariableNamesInHere = WhyAreThereSoManyLongVariableNamesInHere + 100}OhMyGodWhatIsThisVariableIDontEven = OhMyGodWhatIsThisVariableIDontEven + 1}@DrawLoop {}@Finalize {}}
Do I win yet? Oh, this actually does work, too. And it uses the integral function with some trig in there as well. Don't ask why, it just does.
EDIT: Baww, there's no word wrap on the code block to make it look worse.
EDIT: Here have another:
#TouhouDanmakufu
#Title[Rainbow Phasing Bullets]
#Text[Taste the rainbow.]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main{
let CSD = GetCurrentScriptDirectory;
let imgBoss = CSD ~ "img\ExRumia.png";
let frame = 0;
@Initialize{
SetLife(3000);
SetTimer(600);
SetScore(350000);
SetInvincibility(30);
SetX(GetCenterX);
SetY(GetClipMinY+120);
LoadGraphic(imgBoss);
}
@MainLoop{
SetCollisionA(GetX,GetY,32);
SetCollisionB(GetX,GetY,16);
if(frame%30==29){
let randomAngle = rand(0, 360);
ascent(i in 0..18){
PsychoShotLeft(randomAngle+i*20, WHITE11, 10);
PsychoShotRight(randomAngle+i*20, WHITE11, 10);
}
}
yield;
frame++;
}
@DrawLoop{
SetTexture(imgBoss);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(64,1,127,64);
SetGraphicScale(01,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetX,GetY);
}
@BackGround{
}
@Finalize{
DeleteGraphic(imgBoss);
}
task PsychoShotLeft(angle, graphic, delay){
let obj = ColorChangeShot(GetX, GetY, 5, angle, graphic, delay);
loop(60){
Obj_SetSpeed(obj, Obj_GetSpeed(obj)-5/90);
Obj_SetAngle(obj, Obj_GetAngle(obj)+3);
yield;
}
loop(30){yield;}
Obj_SetSpeed(obj, 3);
Obj_SetAngle(obj, Obj_GetAngle(obj)+80);
}
task PsychoShotRight(angle, graphic, delay){
let obj = ColorChangeShot(GetX, GetY, 5, angle, graphic, delay);
loop(60){
Obj_SetSpeed(obj, Obj_GetSpeed(obj)-5/90);
Obj_SetAngle(obj, Obj_GetAngle(obj)-3);
yield;
}
loop(30){yield;}
Obj_SetSpeed(obj, 3);
Obj_SetAngle(obj, Obj_GetAngle(obj)-80);
}
function ColorChangeShot(x, y, speed, angle, graphic, delay){
let parent = Obj_Create(OBJ_SHOT);
Obj_SetPosition(parent, x, y);
Obj_SetSpeed(parent, speed);
Obj_SetAngle(parent, angle);
Obj_SetAlpha(parent, 0);
ObjShot_SetGraphic(parent, graphic);
ObjShot_SetDelay(parent, delay);
ColorChangeShotParent(parent, graphic, delay);
return parent;
}
task ColorChangeShotParent(id, graphic, delay){
loop(delay){yield;}
let red = 255;
let green = 0;
let blue = 0;
while(!Obj_BeDeleted(id)){
loop(51){
green+=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(51){
red-=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(51){
blue+=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(51){
green-=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(51){
red+=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(51){
blue-=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
yield;
}
}
task ColorChangeShotChild(x, y, angle, r, g, b, graphic){
SetShotColor(r, g, b);
let child = Obj_Create(OBJ_SHOT);
Obj_SetPosition(child, x, y);
Obj_SetAngle(child, angle);
Obj_SetSpeed(child, 0);
ObjShot_SetGraphic(child, graphic);
ObjShot_SetDelay(child, 0);
Obj_SetCollisionToPlayer(child, false);
yield;
Obj_Delete(child);
}
}
This one, although the pattern is simple, has a really weird effect. Too bad it's not practical to use this function in a real pattern cause of how much processing power it eats up. :V