Guest User

Untitled

a guest
Jul 11th, 2011
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. task RingShot(x,y,angle,direction,limit)
  2. {
  3. let obj = Obj_Create(OBJ_SHOT);
  4. Obj_SetPosition(obj,x,y);
  5. Obj_SetAngle(obj,angle);
  6. Obj_SetSpeed(obj,0);
  7. ObjShot_SetGraphic(obj,50);
  8. ObjShot_SetDelay(obj,30);
  9. ObjShot_SetBombResist(obj,true);
  10. let count=0;
  11. let bounce = 0;
  12. let v = 0;
  13. let i = 0;
  14. let offshoot;
  15. while(!Obj_BeDeleted(obj))
  16. {
  17. if(count<35){Obj_SetSpeed(obj,v);}
  18. if(count==70){Obj_SetSpeed(obj,0.5);}
  19. if(count==90)
  20. {
  21. Obj_SetAngle(obj,direction);
  22. Obj_SetSpeed(obj,3);
  23. }
  24. if(Obj_GetX(obj)<GetClipMinX)
  25. {
  26. Obj_SetX(obj, 2*GetClipMinX - Obj_GetX(obj));
  27. RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),180-direction,Obj_GetSpeed(obj),limit-1);
  28. Obj_Delete(obj);
  29. }
  30. if(Obj_GetX(obj)>GetClipMaxX)
  31. {
  32. Obj_SetX(obj, 2*GetClipMaxX - Obj_GetX(obj));
  33. RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),180-direction,Obj_GetSpeed(obj),limit-1);
  34. Obj_Delete(obj);
  35. }
  36. if(Obj_GetY(obj)<GetClipMinY)
  37. {
  38. Obj_SetY(obj, 2*GetClipMinY - Obj_GetY(obj));
  39. RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),-direction,Obj_GetSpeed(obj),limit-1);
  40. Obj_Delete(obj);
  41. }
  42. if(Obj_GetY(obj)>GetClipMaxY)
  43. {
  44. Obj_SetY(obj, 2*GetClipMaxY - Obj_GetY(obj));
  45. RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),-direction,Obj_GetSpeed(obj),limit-1);
  46. Obj_Delete(obj);
  47. }
  48. count++;
  49. v+=0.03;
  50. yield;
  51. }
  52. }
  53.  
  54. task RingShotBounced(x,y,angle,speed,bounced)
  55. {
  56. PlaySE(CSD~"SFX\se_kira00.wav");
  57. let obj = Obj_Create(OBJ_SHOT);
  58. Obj_SetPosition(obj,x,y);
  59. Obj_SetAngle(obj,angle);
  60. Obj_SetSpeed(obj,speed);
  61. ObjShot_SetGraphic(obj,50);
  62. ObjShot_SetDelay(obj,5);
  63. ObjShot_SetBombResist(obj,true);
  64. let count=0;
  65. let v = 0;
  66. let i = 0;
  67. while(!Obj_BeDeleted(obj))
  68. {
  69. if(bounced==0){ObjShot_SetGraphic(obj,49);}
  70. if(bounced!=0)
  71. {
  72. if(count>20&&Obj_GetX(obj)<GetClipMinX)
  73. {
  74. Obj_SetX(obj, 2*GetClipMinX - Obj_GetX(obj));
  75. RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),180-angle,Obj_GetSpeed(obj),bounced-1);
  76. Obj_Delete(obj);
  77. }
  78. if(count>20&&Obj_GetX(obj)>GetClipMaxX)
  79. {
  80. Obj_SetX(obj, 2*GetClipMaxX - Obj_GetX(obj));
  81. RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),180-angle,Obj_GetSpeed(obj),bounced-1);
  82. Obj_Delete(obj);
  83. }
  84. if(count>20&&Obj_GetY(obj)<GetClipMinY)
  85. {
  86. Obj_SetY(obj, 2*GetClipMinY - Obj_GetY(obj));
  87. RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),-angle,Obj_GetSpeed(obj),bounced-1);
  88. Obj_Delete(obj);
  89. }
  90. if(count>20&&Obj_GetY(obj)>GetClipMaxY)
  91. {
  92. Obj_SetY(obj, 2*GetClipMaxY - Obj_GetY(obj));
  93. RingShotBounced(Obj_GetX(obj),Obj_GetY(obj),-angle,Obj_GetSpeed(obj),bounced-1);
  94. Obj_Delete(obj);
  95. }
  96. }
  97. count++;
  98. yield;
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment