Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.44 KB | None | 0 0
  1. #東方弾幕風[Stage]
  2. #ScriptVersion[3]
  3. #Title["HRtP Stage 1"]
  4. #Text["HRtP Stage 1"]
  5. let bgm;
  6. function wait(n)
  7. {
  8.     loop(n)
  9.     {
  10.         yield;
  11.     }
  12. }
  13. function randInt(min, max)
  14. {
  15.     return trunc(rand(min, max + 1));
  16. }
  17. function spawnOrb(x, y, a)
  18. {
  19.     let enemy = ObjEnemy_Create(OBJ_ENEMY);
  20.     ObjMove_SetPosition(enemy, x, y);
  21.     ObjMove_SetSpeed(enemy, 1);
  22.     ObjMove_SetAngle(enemy, a);
  23.     ObjEnemy_SetLife(enemy, 1);
  24.     ObjPrim_SetTexture(enemy, "script/JayRS/resource/img/orb.png");
  25.     ObjSprite2D_SetSourceRect(enemy, 4, 5, 28, 27);
  26.     ObjEnemy_Regist(enemy);
  27.     TSpawnOrb(enemy);
  28. }
  29. function manageBGM(obj, ID)
  30. {
  31.     ObjSound_SetSoundDivision(obj, SOUND_BGM);
  32.     ObjSound_SetRestartEnable(obj, true);
  33.     ObjSound_SetLoopEnable(obj, true);
  34.     ObjSound_SetLoopTime(obj, 0, 61.714);
  35.     return obj;
  36. }
  37. @Initialize
  38. {
  39.     TStage;
  40. }
  41. @Event
  42. {
  43.     alternative(GetEventType())
  44.     case(EV_PAUSE_ENTER)
  45.     {
  46.         ObjSound_Stop(bgm);
  47.     }
  48.     case(EV_PAUSE_LEAVE)
  49.     {
  50.         ObjSound_Play(bgm);
  51.     }
  52. }
  53. @MainLoop
  54. {
  55.     yield;
  56. }
  57. task TStage
  58. {
  59.     wait(40);
  60.     bgm = ObjSound_Create();
  61.     ObjSound_Load(bgm, "script/JayRS/resource/bgm/hrtpstage1.ogg");
  62.     manageBGM(bgm, 1);
  63.     ObjSound_Play(bgm);
  64.     loop(10)
  65.     {
  66.         spawnOrb(0, 20, 0);
  67.         spawnOrb(GetStgFrameWidth(), 20, 180);
  68.         wait(20);
  69.     }
  70.     loop(10)
  71.     {
  72.         let randX = randInt(1, GetStgFrameWidth());
  73.         loop(10)
  74.         {
  75.             spawnOrb(randX, 0, 90);
  76.             wait(20)
  77.         }
  78.         wait(80);
  79.     }
  80.     let pluralScript = LoadScriptInThread("script/JayRS/HRtP/HRtP-stage1midboss.txt");
  81.     wait(60);
  82.     StartScript(pluralScript);
  83.     while(!IsCloseScript(pluralScript) && GetPlayerState() != STATE_END)
  84.     {
  85.         yield;
  86.     }
  87.     wait(240);
  88.     CloseStgScene();
  89.    
  90. }
  91. task TSpawnOrb(e)
  92. {
  93.     let x = 0;
  94.     let y = 0;
  95.     while(ObjEnemy_GetInfo(e, INFO_LIFE) > 0 && !Obj_IsDeleted(e))
  96.     {
  97.         x = ObjMove_GetX(e);
  98.         y = ObjMove_GetY(e);
  99.         ObjEnemy_SetIntersectionCircleToShot(e, x, y, 24);
  100.         ObjEnemy_SetIntersectionCircleToPlayer(e, x, y, 20);
  101.         ObjSprite2D_SetDestCenter(e);
  102.         if((x < -100) || (x > GetStgFrameWidth() + 100) || (y < -100) || (y > GetStgFrameWidth() + 100))
  103.         {
  104.             Obj_Delete(e);
  105.             return;
  106.         }
  107.         yield;
  108.     }
  109.     Obj_Delete(e);
  110.     let soundEnemyDie = ObjSound_Create();
  111.     ObjSound_Load(soundEnemyDie, "script/JayRS/resource/se/enemydeath.wav");
  112.     ObjSound_SetSoundDivision(soundEnemyDie, SOUND_SE);
  113.     ObjSound_Play(soundEnemyDie);
  114.     let randResult = randInt(1, 10);
  115.     if(randResult <= 4)
  116.     {
  117.         CreateItemA1(ITEM_POWER, x, y, 10);
  118.     }
  119.     else
  120.     {
  121.         CreateItemA1(ITEM_POINT, x, y, 0);
  122.     }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement