Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- task RingShot(x,y,angle,direction,limit)
- {
- let obj = Obj_Create(OBJ_SHOT);
- Obj_SetPosition(obj,x,y);
- Obj_SetAngle(obj,angle);
- Obj_SetSpeed(obj,0);
- ObjShot_SetGraphic(obj,50);
- ObjShot_SetDelay(obj,30);
- ObjShot_SetBombResist(obj,true);
- let count=0;
- let bounce = 0;
- let v = 0;
- let i = 0;
- let offshoot;
- while(!Obj_BeDeleted(obj))
- {
- if(count<35){Obj_SetSpeed(obj,v);}
- if(count==70){Obj_SetSpeed(obj,0.5);}
- if(count==90)
- {
- Obj_SetAngle(obj,direction);
- Obj_SetSpeed(obj,3);
- }
- if(Obj_GetX(obj)<GetClipMinX)
- {
- Obj_SetX(obj, 2*GetClipMinX - Obj_GetX(obj));
- RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),180-direction,Obj_GetSpeed(obj),limit-1);
- Obj_Delete(obj);
- }
- if(Obj_GetX(obj)>GetClipMaxX)
- {
- Obj_SetX(obj, 2*GetClipMaxX - Obj_GetX(obj));
- RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),180-direction,Obj_GetSpeed(obj),limit-1);
- Obj_Delete(obj);
- }
- if(Obj_GetY(obj)<GetClipMinY)
- {
- Obj_SetY(obj, 2*GetClipMinY - Obj_GetY(obj));
- RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),-direction,Obj_GetSpeed(obj),limit-1);
- Obj_Delete(obj);
- }
- if(Obj_GetY(obj)>GetClipMaxY)
- {
- Obj_SetY(obj, 2*GetClipMaxY - Obj_GetY(obj));
- RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),-direction,Obj_GetSpeed(obj),limit-1);
- Obj_Delete(obj);
- }
- count++;
- v+=0.03;
- yield;
- }
- }
- task RingShotBounced(x,y,angle,speed,bounced)
- {
- PlaySE(CSD~"SFX\se_kira00.wav");
- let obj = Obj_Create(OBJ_SHOT);
- Obj_SetPosition(obj,x,y);
- Obj_SetAngle(obj,angle);
- Obj_SetSpeed(obj,speed);
- ObjShot_SetGraphic(obj,50);
- ObjShot_SetDelay(obj,5);
- ObjShot_SetBombResist(obj,true);
- let count=0;
- let v = 0;
- let i = 0;
- while(!Obj_BeDeleted(obj))
- {
- if(bounced==0){ObjShot_SetGraphic(obj,49);}
- if(bounced!=0)
- {
- if(count>20&&Obj_GetX(obj)<GetClipMinX)
- {
- Obj_SetX(obj, 2*GetClipMinX - Obj_GetX(obj));
- RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),180-angle,Obj_GetSpeed(obj),bounced-1);
- Obj_Delete(obj);
- }
- if(count>20&&Obj_GetX(obj)>GetClipMaxX)
- {
- Obj_SetX(obj, 2*GetClipMaxX - Obj_GetX(obj));
- RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),180-angle,Obj_GetSpeed(obj),bounced-1);
- Obj_Delete(obj);
- }
- if(count>20&&Obj_GetY(obj)<GetClipMinY)
- {
- Obj_SetY(obj, 2*GetClipMinY - Obj_GetY(obj));
- RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),-angle,Obj_GetSpeed(obj),bounced-1);
- Obj_Delete(obj);
- }
- if(count>20&&Obj_GetY(obj)>GetClipMaxY)
- {
- Obj_SetY(obj, 2*GetClipMaxY - Obj_GetY(obj));
- RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),-angle,Obj_GetSpeed(obj),bounced-1);
- Obj_Delete(obj);
- }
- }
- count++;
- yield;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment