Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- task NuclearFireBalls(posX,posY,v,dir){
- let fireScale1 = 1.25;
- let fireScale2 = 1.1;
- let obj1 = Obj_Create(OBJ_EFFECT);
- let obj2 = Obj_Create(OBJ_EFFECT);
- LoadGraphic(nuclearFireBall1);
- LoadGraphic(nuclearFireBall2);
- //Nuclear Fireball Graphic
- ObjEffect_SetRenderState(obj1,ALPHA);
- ObjEffect_SetTexture(obj1,nuclearFireBall1);
- ObjEffect_SetAngle(obj1,0,0,0);
- ObjEffect_SetScale(obj1,fireScale1,fireScale1);
- ObjEffect_SetLayer(obj1,2);
- ObjEffect_SetPrimitiveType(obj1,PRIMITIVE_TRIANGLESTRIP);
- ObjEffect_CreateVertex(obj1,4);
- ObjEffect_SetVertexXY(obj1,0,-128,-128);
- ObjEffect_SetVertexXY(obj1,1,128,-128);
- ObjEffect_SetVertexXY(obj1,2,-128,128);
- ObjEffect_SetVertexXY(obj1,3,128,128);
- ObjEffect_SetVertexUV(obj1,0,0,0);
- ObjEffect_SetVertexUV(obj1,1,256,0);
- ObjEffect_SetVertexUV(obj1,2,0,256);
- ObjEffect_SetVertexUV(obj1,3,256,256);
- //Nuclear Fireball OverLay
- ObjEffect_SetRenderState(obj2,ALPHA);
- ObjEffect_SetTexture(obj2,nuclearFireBall1);
- ObjEffect_SetAngle(obj2,0,0,0);
- ObjEffect_SetScale(obj2,fireScale2,fireScale2);
- ObjEffect_SetLayer(obj2,2);
- ObjEffect_SetPrimitiveType(obj2,PRIMITIVE_TRIANGLESTRIP);
- ObjEffect_CreateVertex(obj2,4);
- ObjEffect_SetVertexXY(obj2,0,-128,-128);
- ObjEffect_SetVertexXY(obj2,1,128,-128);
- ObjEffect_SetVertexXY(obj2,2,-128,128);
- ObjEffect_SetVertexXY(obj2,3,128,128);
- ObjEffect_SetVertexUV(obj2,0,0,0);
- ObjEffect_SetVertexUV(obj2,1,256,0);
- ObjEffect_SetVertexUV(obj2,2,0,256);
- ObjEffect_SetVertexUV(obj2,3,256,256);
- //animation syntaxes
- let x = GetCenterX;
- let y = GetCenterY;
- let alphaVal = 0;
- let frame = 0;
- let spin = 0;
- while(!Obj_BeDeleted(obj1)){
- if(frame < 50){
- if(fireScale1 < 2.25){
- fireScale1+=0.15/2.25;
- }
- }
- if(frame < 60){
- if(alphaVal < 255){
- alphaVal+=255/30;
- }
- if(fireScale2 < 1.8){
- fireScale2+=0.1/2;
- }
- }
- if(frame >= 60 && frame < 90){
- if(fireScale1 > 1){
- fireScale1-=0.1/1;
- }
- if(fireScale2 > 0.9){
- fireScale2-=0.1/1;
- }
- }
- Obj_SetPosition(obj1,posX,posY);
- Obj_SetPosition(obj2,Obj_GetX(obj1),Obj_GetY(obj1));
- //scale of each object will increase as long the object will not be deleted
- ObjEffect_SetScale(obj1,fireScale1,fireScale1);
- ObjEffect_SetScale(obj2,fireScale2,fireScale2);
- //setting the angle of the objects (much like setting the angle to bullets)
- Obj_SetAngle(obj1,dir);
- Obj_SetAngle(obj2,Obj_GetAngle(obj1));
- //setting the collision
- SetCollisionB(Obj_GetX(obj1),Obj_GetY(obj1),60);
- SetCollisionB(Obj_GetX(obj2),Obj_GetY(obj2),50);
- //setting the velocity or speed
- Obj_SetSpeed(obj1,v);
- Obj_SetSpeed(obj2,Obj_GetSpeed(obj1));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment