SilentSorrow

Trial #2 on Fireballs

Feb 9th, 2014
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. task NuclearFireBalls(posX,posY,v,dir){
  2. let fireScale1 = 1.25;
  3. let fireScale2 = 1.1;
  4.  
  5. let obj1 = Obj_Create(OBJ_EFFECT);
  6. let obj2 = Obj_Create(OBJ_EFFECT);
  7.  
  8. LoadGraphic(nuclearFireBall1);
  9. LoadGraphic(nuclearFireBall2);
  10.  
  11. //Nuclear Fireball Graphic
  12. ObjEffect_SetRenderState(obj1,ALPHA);
  13. ObjEffect_SetTexture(obj1,nuclearFireBall1);
  14. ObjEffect_SetAngle(obj1,0,0,0);
  15.  
  16. ObjEffect_SetScale(obj1,fireScale1,fireScale1);
  17. ObjEffect_SetLayer(obj1,2);
  18. ObjEffect_SetPrimitiveType(obj1,PRIMITIVE_TRIANGLESTRIP);
  19. ObjEffect_CreateVertex(obj1,4);
  20.  
  21. ObjEffect_SetVertexXY(obj1,0,-128,-128);
  22. ObjEffect_SetVertexXY(obj1,1,128,-128);
  23. ObjEffect_SetVertexXY(obj1,2,-128,128);
  24. ObjEffect_SetVertexXY(obj1,3,128,128);
  25.  
  26. ObjEffect_SetVertexUV(obj1,0,0,0);
  27. ObjEffect_SetVertexUV(obj1,1,256,0);
  28. ObjEffect_SetVertexUV(obj1,2,0,256);
  29. ObjEffect_SetVertexUV(obj1,3,256,256);
  30.  
  31. //Nuclear Fireball OverLay
  32. ObjEffect_SetRenderState(obj2,ALPHA);
  33. ObjEffect_SetTexture(obj2,nuclearFireBall1);
  34. ObjEffect_SetAngle(obj2,0,0,0);
  35.  
  36. ObjEffect_SetScale(obj2,fireScale2,fireScale2);
  37. ObjEffect_SetLayer(obj2,2);
  38. ObjEffect_SetPrimitiveType(obj2,PRIMITIVE_TRIANGLESTRIP);
  39. ObjEffect_CreateVertex(obj2,4);
  40.  
  41. ObjEffect_SetVertexXY(obj2,0,-128,-128);
  42. ObjEffect_SetVertexXY(obj2,1,128,-128);
  43. ObjEffect_SetVertexXY(obj2,2,-128,128);
  44. ObjEffect_SetVertexXY(obj2,3,128,128);
  45.  
  46. ObjEffect_SetVertexUV(obj2,0,0,0);
  47. ObjEffect_SetVertexUV(obj2,1,256,0);
  48. ObjEffect_SetVertexUV(obj2,2,0,256);
  49. ObjEffect_SetVertexUV(obj2,3,256,256);
  50.  
  51. //animation syntaxes
  52. let x = GetCenterX;
  53. let y = GetCenterY;
  54. let alphaVal = 0;
  55. let frame = 0;
  56. let spin = 0;
  57.  
  58. while(!Obj_BeDeleted(obj1)){
  59. if(frame < 50){
  60. if(fireScale1 < 2.25){
  61. fireScale1+=0.15/2.25;
  62. }
  63. }
  64. if(frame < 60){
  65. if(alphaVal < 255){
  66. alphaVal+=255/30;
  67. }
  68. if(fireScale2 < 1.8){
  69. fireScale2+=0.1/2;
  70. }
  71. }
  72.  
  73. if(frame >= 60 && frame < 90){
  74. if(fireScale1 > 1){
  75. fireScale1-=0.1/1;
  76. }
  77.  
  78. if(fireScale2 > 0.9){
  79. fireScale2-=0.1/1;
  80. }
  81. }
  82.  
  83. Obj_SetPosition(obj1,posX,posY);
  84. Obj_SetPosition(obj2,Obj_GetX(obj1),Obj_GetY(obj1));
  85.  
  86. //scale of each object will increase as long the object will not be deleted
  87. ObjEffect_SetScale(obj1,fireScale1,fireScale1);
  88. ObjEffect_SetScale(obj2,fireScale2,fireScale2);
  89.  
  90. //setting the angle of the objects (much like setting the angle to bullets)
  91. Obj_SetAngle(obj1,dir);
  92. Obj_SetAngle(obj2,Obj_GetAngle(obj1));
  93.  
  94. //setting the collision
  95. SetCollisionB(Obj_GetX(obj1),Obj_GetY(obj1),60);
  96. SetCollisionB(Obj_GetX(obj2),Obj_GetY(obj2),50);
  97.  
  98. //setting the velocity or speed
  99. Obj_SetSpeed(obj1,v);
  100. Obj_SetSpeed(obj2,Obj_GetSpeed(obj1));
  101. }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment