Advertisement
Guest User

Untitled

a guest
Apr 10th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. task LifeCircle(renderObj, enemyObj){
  2. let path = root~"/system/img/Default_System.png";
  3. let obj = ObjPrim_Create(OBJ_PRIMITIVE_2D); //lifebar base
  4. let objb = ObjPrim_Create(OBJ_PRIMITIVE_2D); //actual life bar
  5. let obj2 = ObjPrim_Create(OBJ_SPRITE_LIST_2D); //boss stars
  6. let obj3 = ObjPrim_Create(OBJ_SPRITE_LIST_2D); //life bar knobs
  7. ObjPrim_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
  8. ObjPrim_SetPrimitiveType(objb, PRIMITIVE_TRIANGLESTRIP);
  9. ObjPrim_SetTexture(obj, root~"/system/img/lifebar.png");
  10. ObjPrim_SetTexture(objb, root~"/system/img/lifebar.png");
  11. ObjPrim_SetTexture(obj2, path);
  12. ObjPrim_SetTexture(obj3, root~"/system/img/lifebar.png");
  13. Obj_SetRenderPriority(obj, 0.31);
  14. Obj_SetRenderPriority(objb, 0.32);
  15. Obj_SetRenderPriority(obj2, 0.7);
  16. Obj_SetRenderPriority(obj3, 0.33);
  17.  
  18. let lastRemStep = -1;
  19. let lifeRateRender = 0;
  20.  
  21. let vertexcount = 64;
  22. let innerrad = 60; //inner radius of the circle
  23. let outerrad = 68; //outer radius of the circle
  24.  
  25. let objScene = ID_INVALID;
  26. let bossEnemy = [];
  27.  
  28. ObjPrim_SetVertexCount(obj, vertexcount);
  29. ObjPrim_SetVertexCount(objb, vertexcount);
  30.  
  31. let lifeM = ObjEnemy_GetInfo(enemyObj, INFO_LIFE); //starting life
  32. loop{
  33. ObjSpriteList2D_ClearVertexCount(obj2);
  34. ObjSpriteList2D_ClearVertexCount(obj3);
  35. if(!Obj_IsDeleted(enemyObj)){
  36. if(length(GetEnemyBossObjectID) > 0){
  37. ObjRender_SetAlpha(obj, 256);
  38. ObjRender_SetAlpha(objb, 256);
  39. ObjRender_SetAlpha(obj2, 256);
  40. ObjRender_SetAlpha(obj3, 256);
  41. }else{
  42. ObjRender_SetAlpha(obj, 0);
  43. ObjRender_SetAlpha(objb, 0);
  44. ObjRender_SetAlpha(obj2, 0);
  45. ObjRender_SetAlpha(obj3, 0);
  46. }
  47.  
  48. let life = ObjEnemy_GetInfo(enemyObj, INFO_LIFE); //life remaining
  49. ascent(i in 0..vertexcount/2){
  50. let indexvert = i*2;
  51. let angle = i*360/(vertexcount*0.5-1) - 90;
  52. let angle2 = -90-(life/lifeM)*i*360/(vertexcount*0.5-1);
  53. ObjPrim_SetVertexPosition(obj, indexvert+0, ObjRender_GetX(renderObj)+innerrad*cos(angle), ObjRender_GetY(renderObj)+innerrad*sin(angle), 0);
  54. ObjPrim_SetVertexPosition(obj, indexvert+1, ObjRender_GetX(renderObj)+outerrad*cos(angle), ObjRender_GetY(renderObj)+outerrad*sin(angle), 0);
  55.  
  56. ObjPrim_SetVertexUVT(obj, indexvert+0, 10, 0);
  57. ObjPrim_SetVertexUVT(obj, indexvert+1, 20, 32);
  58.  
  59.  
  60. ObjPrim_SetVertexPosition(objb, indexvert+0, ObjRender_GetX(renderObj)+innerrad*cos(angle2), ObjRender_GetY(renderObj)+innerrad*sin(angle2), 0);
  61. ObjPrim_SetVertexPosition(objb, indexvert+1, ObjRender_GetX(renderObj)+outerrad*cos(angle2), ObjRender_GetY(renderObj)+outerrad*sin(angle2), 0);
  62.  
  63. ObjPrim_SetVertexUVT(objb, indexvert+0, 0, 0);
  64. ObjPrim_SetVertexUVT(objb, indexvert+1, 10, 32);
  65. }
  66. }else{
  67. Obj_Delete(obj);
  68. Obj_Delete(objb);
  69. Obj_Delete(obj2);
  70. Obj_Delete(obj3);
  71. return;
  72. }
  73. yield;
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement