Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.65 KB | None | 0 0
  1. #include "./SoundFunctions.dnh"
  2. let Current = GetCurrentScriptDirectory();
  3. let quality = 2;
  4. function GetDistance(x1,y1,x2,y2){
  5. return(((x2-x1)^2+(y2-y1)^2)^(1/2))
  6. }
  7. InstallFont (GetCurrentScriptDirectory ~ "fonts/rusq.ttf");
  8. InstallFont(GetCurrentScriptDirectory ~ "fonts/framd.ttf");
  9. StartScript(LoadScriptInThread(Current ~ "../lib/EffectsEngine.dnh"));
  10. #include "../lib/EV_const.dnh"
  11.  
  12. @Initialize{
  13. SetPauseScriptPath(Current ~ "Pause.dnh");
  14. SetEndSceneScriptPath(Current ~ "EndScene.dnh");
  15. StartItemScript(GetCurrentScriptDirectory ~ "./Item.txt");
  16. InitFrame();
  17. BossTimer();
  18. BossLife();
  19. TPlayerLife();
  20. TPlayerSpell();
  21. TGraze();
  22. THiScore();
  23. TScore();
  24. TCurrentFps();
  25. }
  26.  
  27. @MainLoop{
  28. yield;
  29. }
  30.  
  31. @Event{
  32. alternative(GetEventType())
  33. case(EV_GAIN_SPELL){
  34. let objScene = GetEnemyBossSceneObjectID();
  35. let score = ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE);
  36. SetCommonData("LastWord", GetCommonData("LastWord", 0)+1);
  37. PlaySound("SpellCapture",85,0);
  38. TGainSpell(score);
  39. }
  40. }
  41.  
  42. @Finalize{
  43. }
  44.  
  45. let completelyexpanded = false;
  46. let completelyclosed = false;
  47. let stgalphastgalpha = 0;
  48. let HUDalpha = 0;
  49. function InitFrame(){
  50. Difficulty(30);
  51. fadeinHUD;
  52. StgFrame;
  53.  
  54. task StgFrame{
  55. let path = GetCurrentScriptDirectory() ~ "img/StgFrame.png";
  56. let obj = ObjPrim_Create(OBJ_SPRITE_2D);
  57. ObjPrim_SetTexture(obj, path);
  58. Obj_SetRenderPriority(obj, 0);
  59. ObjSprite2D_SetSourceRect(obj, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
  60. ObjSprite2D_SetDestRect(obj, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
  61. loop{
  62. if(!GetCommonData("OpenField", false) && !GetCommonData("CloseField", false)) {
  63. completelyexpanded = false;
  64. yield;
  65. } else if(GetCommonData("OpenField", false)) {
  66. if(!completelyexpanded){
  67. stgalphastgalpha = 250;
  68. ascent(i in 0..30) {
  69. let s = sin((i+1)*90/30)^2;
  70. let pastRatioX = GetPlayerX/GetStgFrameWidth;
  71. let pastRatioY = GetPlayerY/GetStgFrameHeight;
  72. SetStgFrame(32-32*s, 16-16*s, 416+224*s, 464+16*s, 20, 80);
  73. SetPlayerClip(16, 16, 384+256*s-16, 448+32*s-16);
  74. ObjRender_SetAlpha(obj,stgalphastgalpha);
  75. stgalphastgalpha -= 255/30;
  76. SetCommonData("OpenField", false);
  77. SetCommonData("CloseField", false);
  78. //ObjMove_SetPosition(GetPlayerObjectID, GetStgFrameWidth*pastRatioX, GetStgFrameHeight*pastRatioY);
  79. yield;
  80. }
  81. completelyexpanded = true; //Obj_Delete(obj);
  82. SetCommonData("ExpandField", true);
  83. }
  84. } else if(GetCommonData("CloseField", false)) {
  85. if(!completelyclosed){
  86. stgalphastgalpha = 0;
  87. ascent(i in 0..30) {
  88. let s = sin((i+1)*90/30)^2;
  89. let pastRatioX = GetPlayerX/GetStgFrameWidth;
  90. let pastRatioY = GetPlayerY/GetStgFrameHeight;
  91. SetStgFrame(32*s, 16*s, (416+224*(sin((29+1)*90/30)^2))-224*s, (464+16*s)-16*(sin((29+1)*90/30)^2), 20, 80);
  92. SetPlayerClip(16, 16, 624-256*s+16, 464-32*s+16);
  93. ObjRender_SetAlpha(obj,stgalphastgalpha);
  94. stgalphastgalpha += 255/30;
  95. //ObjMove_SetPosition(GetPlayerObjectID, GetStgFrameWidth*pastRatioX, GetStgFrameHeight*pastRatioY);
  96. SetCommonData("OpenField", false);
  97. SetCommonData("CloseField", false);
  98. yield;
  99. }
  100. SetStgFrame(32, 16, 416, 464, 20, 80);
  101. SetPlayerClip(16, 16, 384-16, 448-16);
  102. completelyclosed = true; //Obj_Delete(obj);
  103. SetCommonData("ExpandField", false);
  104. }
  105. }
  106. yield;
  107. }
  108. }
  109. task fadeinHUD{
  110. ascent(i in 0..61){
  111. HUDalpha = i*255/60;
  112. yield;
  113. }
  114. }
  115. }
  116.  
  117. task Difficulty(yielder){
  118. let path = GetCurrentScriptDirectory() ~ "img/Difficulity.png";
  119. let objDiff = ObjPrim_Create(OBJ_SPRITE_2D);
  120.  
  121. let blink = 3;
  122. let blinkcount = 10;
  123. let alpha = 255;
  124. let frame = 0;
  125. let value = 0;
  126.  
  127. ObjPrim_SetTexture(objDiff, path);
  128. Obj_SetRenderPriority(objDiff, 1);
  129. ObjRender_SetPosition(objDiff, -60, -60, 0);
  130.  
  131. loop(yielder){yield}
  132. alternative(GetCommonData("Difficulty","Easy"))
  133. case("Easy"){
  134. value = 1;
  135. }
  136. case("Normal"){
  137. value = 2;
  138. }
  139. case("Hard"){
  140. value = 3;
  141. }
  142. case("Lunartic"){
  143. value = 4;
  144. }
  145. case("Extra"){
  146. value = 5;
  147. }
  148. case("Eclipse"){
  149. value = 6;
  150. }
  151. case("BossRush"){
  152. value = 7;
  153. }
  154. case("LastWord"){
  155. value = 8;
  156. }
  157. others{
  158. value = 9;
  159. }
  160. ObjSprite2D_SetSourceRect(objDiff, 0, 32*(value-1), 256, 32*value);
  161. ObjRender_SetScaleXYZ(objDiff,0.55,60*0.01,0);
  162. ObjSprite2D_SetDestCenter(objDiff);
  163.  
  164. loop(yielder){yield}
  165.  
  166. ObjRender_SetPosition(objDiff, GetStgFrameWidth/2+36, 48, 0);
  167.  
  168. loop((blinkcount*blink)*2){
  169. if(frame==blink){ObjRender_SetY(objDiff, -60);}
  170. if(frame==blink*2){ObjRender_SetY(objDiff, 48);frame = 0;}
  171. frame++;
  172. yield;
  173. }
  174. ObjRender_SetY(objDiff, 48);
  175. while(alpha>0){
  176. alpha-=25.5;
  177. ObjRender_SetAlpha(objDiff, alpha);
  178. yield;
  179. }
  180. loop(45){yield};
  181. ObjRender_SetPosition(objDiff, 532, 32, 0);
  182. while(alpha<255){
  183. alpha+=5;
  184. ObjRender_SetAlpha(objDiff, alpha);
  185. yield;
  186. }
  187. Obj_SetRenderPriority(objDiff, 0.09);
  188. }
  189.  
  190. //----------------------------------------------------
  191. //スコア表示
  192. //----------------------------------------------------
  193.  
  194. task THiScore(){
  195. TText;
  196. task TText{
  197. let obj=ObjPrim_Create(OBJ_SPRITE_2D);
  198. let img=GetCurrentScriptDirectory()~"img/HUD.png";
  199. ObjPrim_SetTexture(obj,img);
  200. ObjSprite2D_SetSourceRect(obj,0,0,60,16);
  201. ObjSprite2D_SetDestCenter(obj);
  202. ObjRender_SetBlendType(obj,BLEND_ALPHA);
  203. ObjRender_SetScaleXYZ(obj,1.10,1.10,0);
  204. Obj_SetRenderPriority(obj,0.1);
  205. ObjRender_SetPosition(obj,GetStgFrameWidth/2+265,58,0);
  206. TCheck;
  207. task TCheck{
  208. loop{
  209. ObjRender_SetAlpha(obj,HUDalpha);
  210. yield;
  211. }
  212. }}
  213.  
  214. //得点
  215. let pathDigit = GetCurrentScriptDirectory() ~ "img/SystemDigit.png";
  216. let count = 12;
  217.  
  218. let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
  219. ObjPrim_SetTexture(obj, pathDigit);
  220. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  221. ObjRender_SetAlpha(obj,255);
  222. Obj_SetRenderPriority(obj, 0.1);
  223. ObjRender_SetY(obj, 72);
  224.  
  225. while(true)
  226. {
  227. ObjRender_SetAlpha(obj,HUDalpha);
  228. let score = GetScore();
  229. score = min(score, 999999999999);
  230. let listNum = DigitToArray(score, count);
  231.  
  232. ObjSpriteList2D_ClearVertexCount(obj);
  233. ascent(iObj in 0 .. count)
  234. {
  235. let num = listNum[iObj];
  236. ObjRender_SetX(obj, 445 + iObj * 14);
  237. ObjRender_SetY(obj, 72);
  238. ObjSpriteList2D_SetSourceRect(obj,num*16,0,(num+1)*16,20);
  239. ObjSpriteList2D_SetDestRect(obj,0,0,17,20);
  240. ObjSpriteList2D_AddVertex(obj);
  241. }
  242. yield;
  243. }
  244. }
  245.  
  246. task TScore(){
  247. TText;
  248. task TText{
  249. let obj=ObjPrim_Create(OBJ_SPRITE_2D);
  250. let img=GetCurrentScriptDirectory()~"img/HUD.png";
  251. ObjPrim_SetTexture(obj,img);
  252. ObjSprite2D_SetSourceRect(obj,0,17,68,17*2);
  253. ObjSprite2D_SetDestCenter(obj);
  254. ObjRender_SetBlendType(obj,BLEND_ALPHA);
  255. ObjRender_SetScaleXYZ(obj,1.10,1.10,0);
  256. Obj_SetRenderPriority(obj,0.1);
  257. ObjRender_SetPosition(obj,GetStgFrameWidth/2+269,103,0);
  258. TCheck;
  259. task TCheck{
  260. loop{
  261. ObjRender_SetAlpha(obj,HUDalpha);
  262. yield;
  263. }
  264. }}
  265.  
  266. //得点
  267. let pathDigit = GetCurrentScriptDirectory() ~ "img/SystemDigit.png";
  268. let count = 12;
  269.  
  270. let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
  271. ObjPrim_SetTexture(obj, pathDigit);
  272. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  273. ObjRender_SetAlpha(obj,255);
  274. Obj_SetRenderPriority(obj, 0.1);
  275. ObjRender_SetY(obj, 72);
  276.  
  277. while(true)
  278. {
  279. ObjRender_SetAlpha(obj,HUDalpha);
  280. let score = GetScore();
  281. score = min(score, 999999999999);
  282. let listNum = DigitToArray(score, count);
  283.  
  284. ObjSpriteList2D_ClearVertexCount(obj);
  285. ascent(iObj in 0 .. count)
  286. {
  287. let num = listNum[iObj];
  288. ObjRender_SetX(obj, 445 + iObj * 14);
  289. ObjRender_SetY(obj, 115);
  290. ObjSpriteList2D_SetSourceRect(obj,num*16,0,(num+1)*16,20);
  291. ObjSpriteList2D_SetDestRect(obj,0,0,17,20);
  292. ObjSpriteList2D_AddVertex(obj);
  293. }
  294. yield;
  295. }
  296. }
  297.  
  298. //----------------------------------------------------
  299. //Graze表示
  300. //----------------------------------------------------
  301. task TGraze(){
  302. TText;
  303. task TText{
  304. let obj=ObjPrim_Create(OBJ_SPRITE_2D);
  305. let img=GetCurrentScriptDirectory()~"img/HUD.png";
  306. ObjPrim_SetTexture(obj,img);
  307. ObjSprite2D_SetSourceRect(obj,69,17,69*2,17*2);
  308. ObjSprite2D_SetDestCenter(obj);
  309. ObjRender_SetBlendType(obj,BLEND_ALPHA);
  310. ObjRender_SetScaleXYZ(obj,1.10,1.10,0);
  311. Obj_SetRenderPriority(obj,0.1);
  312. ObjRender_SetPosition(obj,GetStgFrameWidth/2+245,206,0);
  313. TCheck;
  314. task TCheck{
  315. loop{
  316. ObjRender_SetAlpha(obj,HUDalpha);
  317. yield;
  318. }
  319. }}
  320.  
  321. //得点
  322. let pathDigit = GetCurrentScriptDirectory() ~ "img/SystemDigit.png";
  323. let count = 5;
  324.  
  325. let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
  326. ObjPrim_SetTexture(obj, pathDigit);
  327. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  328. ObjRender_SetAlpha(obj,255);
  329. Obj_SetRenderPriority(obj, 0.1);
  330. ObjRender_SetY(obj, 122);
  331.  
  332. while(true)
  333. {
  334. ObjRender_SetAlpha(obj,HUDalpha);
  335. let graze = GetGraze();
  336. graze = min(graze, 99999);
  337. let listNum = DigitToArray(graze, count);
  338.  
  339. ObjSpriteList2D_ClearVertexCount(obj);
  340. ascent(iObj in 0 .. count)
  341. {
  342. let num = listNum[iObj];
  343. ObjRender_SetX(obj, 560 + iObj * 14);
  344. ObjRender_SetY(obj, 196);
  345. ObjSpriteList2D_SetSourceRect(obj,num*16,0,(num+1)*16,20);
  346. ObjSpriteList2D_SetDestRect(obj,0,0,17,20);
  347. ObjSpriteList2D_AddVertex(obj);
  348. }
  349. yield;
  350. }
  351. }
  352.  
  353. //----------------------------------------------------
  354. //残機表示
  355. //----------------------------------------------------
  356. task TPlayerLife
  357. {
  358. TText;
  359. //TInfinitie;
  360.  
  361. EmptyLife(GetStgFrameWidth/2+315+128/2);
  362. RealLife(GetStgFrameWidth/2+315+128/2);
  363.  
  364. task EmptyLife(px){
  365. let obj=ObjPrim_Create(OBJ_SPRITE_2D);
  366. let img=GetCurrentScriptDirectory()~"img/Bars.png";
  367. ObjPrim_SetTexture(obj,img);
  368. ObjSprite2D_SetSourceRect(obj,0,0,128,16);
  369. ObjSprite2D_SetDestCenter(obj);
  370. ObjRender_SetBlendType(obj,BLEND_ALPHA);
  371. ObjRender_SetScaleXYZ(obj,1,1,0);
  372. Obj_SetRenderPriority(obj,0.1);
  373. ObjRender_SetPosition(obj,px,155,0);
  374. while(true){
  375. ObjRender_SetAlpha(obj,HUDalpha);
  376. yield;
  377. }
  378. }
  379. task RealLife(px){
  380. let obj=ObjPrim_Create(OBJ_SPRITE_2D);
  381. let img=GetCurrentScriptDirectory()~"img/Bars.png";
  382. ObjPrim_SetTexture(obj,img);
  383. ObjSprite2D_SetSourceRect(obj,0,16,128,32);
  384. ObjSprite2D_SetDestCenter(obj);
  385. ObjRender_SetBlendType(obj,BLEND_ALPHA);
  386. ObjRender_SetScaleXYZ(obj,1,1,0);
  387. Obj_SetRenderPriority(obj,0.1);
  388. ObjRender_SetPosition(obj,px,155,0);
  389. while(true){
  390. ObjSprite2D_SetSourceRect(obj,0,16,16*(GetPlayerLife+1),32);
  391. ObjSprite2D_SetDestRect(obj,-128/2,-8,16*(GetPlayerLife+1)-64,8);
  392. ObjRender_SetAlpha(obj,HUDalpha);
  393. yield;
  394. }
  395. }
  396. task TText{
  397. let obj=ObjPrim_Create(OBJ_SPRITE_2D);
  398. let img=GetCurrentScriptDirectory()~"img/HUD.png";
  399. ObjPrim_SetTexture(obj,img);
  400. ObjSprite2D_SetSourceRect(obj,0,36,40,52);
  401. ObjSprite2D_SetDestCenter(obj);
  402. ObjRender_SetBlendType(obj,BLEND_ALPHA);
  403. ObjRender_SetScaleXYZ(obj,1,1,0);
  404. Obj_SetRenderPriority(obj,0.1);
  405. ObjRender_SetPosition(obj,GetStgFrameWidth/2+252,155,0);
  406. TCheck;
  407. task TCheck{
  408. loop{
  409. ObjRender_SetAlpha(obj,HUDalpha);
  410. yield;
  411. }
  412.  
  413. }
  414. }
  415.  
  416. }
  417.  
  418. //----------------------------------------------------
  419. //残スペル表示
  420. //----------------------------------------------------
  421. task TPlayerSpell
  422. {
  423. TText;
  424. //TInfinitie;
  425.  
  426. EmptySpell(GetStgFrameWidth/2+315+128/2);
  427. RealSpell(GetStgFrameWidth/2+315+128/2);
  428.  
  429. task EmptySpell (px){
  430. let obj=ObjPrim_Create(OBJ_SPRITE_2D);
  431. let img=GetCurrentScriptDirectory()~"img/Bars.png";
  432. ObjPrim_SetTexture(obj,img);
  433. ObjSprite2D_SetSourceRect(obj,-1,32,128,48);
  434. ObjSprite2D_SetDestCenter(obj);
  435. ObjRender_SetBlendType(obj,BLEND_ALPHA);
  436. ObjRender_SetScaleXYZ(obj,1,1,0);
  437. Obj_SetRenderPriority(obj,0.1);
  438. ObjRender_SetPosition(obj,px,179,0);
  439. while(true){
  440. ObjRender_SetAlpha(obj,HUDalpha);
  441. yield;
  442. }
  443. }
  444. task RealSpell(px){
  445. let obj=ObjPrim_Create(OBJ_SPRITE_2D);
  446. let img=GetCurrentScriptDirectory()~"img/Bars.png";
  447. ObjPrim_SetTexture(obj,img);
  448. ObjSprite2D_SetSourceRect(obj,0,48,128,64);
  449. ObjSprite2D_SetDestCenter(obj);
  450. ObjRender_SetBlendType(obj,BLEND_ALPHA);
  451. ObjRender_SetScaleXYZ(obj,1,1,0);
  452. Obj_SetRenderPriority(obj,0.1);
  453. ObjRender_SetPosition(obj,px,179,0);
  454. while(true){
  455. ObjSprite2D_SetSourceRect(obj,0,48,16*GetPlayerSpell,64);
  456. ObjSprite2D_SetDestRect(obj,-128/2,-8,16*GetPlayerSpell-64,8);
  457. ObjRender_SetAlpha(obj,HUDalpha);
  458. yield;
  459. }
  460. }
  461. task TText{
  462. let obj=ObjPrim_Create(OBJ_SPRITE_2D);
  463. let img=GetCurrentScriptDirectory()~"img/HUD.png";
  464. ObjPrim_SetTexture(obj,img);
  465. ObjSprite2D_SetSourceRect(obj,68,0,69*2,17);
  466. ObjSprite2D_SetDestCenter(obj);
  467. ObjRender_SetBlendType(obj,BLEND_ALPHA);
  468. ObjRender_SetScaleXYZ(obj,1,1,0);
  469. Obj_SetRenderPriority(obj,0.1);
  470. ObjRender_SetPosition(obj,GetStgFrameWidth/2+262,179,0);
  471. TCheck;
  472. task TCheck{
  473. loop{
  474. ObjRender_SetAlpha(obj,HUDalpha);
  475. yield;
  476. }
  477.  
  478. }
  479. }
  480.  
  481. }
  482.  
  483. //----------------------------------------------------
  484. //ボスのライフ表示
  485. //----------------------------------------------------
  486. task BossLife{
  487. let pathHealth = GetCurrentScriptDirectory ~ "img/lifebar.png";
  488. let path = pathHealth;
  489. let countVertex = 64;
  490. let objScene = ID_INVALID;
  491.  
  492. let objStar = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
  493. ObjPrim_SetTexture(objStar, GetCurrentScriptDirectory ~ "img/frame2.png");
  494. Obj_SetRenderPriority(objStar, 0.7);
  495. ObjRender_SetScaleXYZ(objStar,1,1,1);
  496. ObjSpriteList2D_SetSourceRect(objStar, 144, 80, 156, 92);
  497.  
  498. let objLife = ObjPrim_Create(OBJ_PRIMITIVE_2D);
  499. ObjPrim_SetPrimitiveType(objLife, PRIMITIVE_TRIANGLESTRIP);
  500. ObjPrim_SetVertexCount(objLife, countVertex);
  501. ObjRender_SetBlendType(objLife, BLEND_ALPHA);
  502. Obj_SetRenderPriority(objLife, 0.69);
  503. ObjPrim_SetTexture(objLife, path);
  504.  
  505. let objOutline = ObjPrim_Create(OBJ_PRIMITIVE_2D);
  506. ObjPrim_SetPrimitiveType(objOutline, PRIMITIVE_TRIANGLESTRIP);
  507. ObjPrim_SetVertexCount(objOutline, countVertex);
  508. ObjRender_SetBlendType(objOutline, BLEND_ALPHA);
  509. Obj_SetRenderPriority(objOutline, 0.68);
  510. ObjPrim_SetTexture(objOutline, path);
  511.  
  512. let objKnub = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
  513. ObjPrim_SetTexture(objKnub, path);
  514. Obj_SetRenderPriority(objKnub, 0.69);
  515. ObjSpriteList2D_SetSourceRect(objKnub, 20, 0, 29, 11);
  516. ObjSpriteList2D_SetDestRect(objKnub, -2.5, -3, 2.5, 3);
  517.  
  518. ascent (iVert in 0..countVertex/2){
  519. let vertex = iVert * 2;
  520. ObjPrim_SetVertexUVT(objLife, vertex+0, 0, 0);
  521. ObjPrim_SetVertexUVT(objLife, vertex+1, 10, 32);
  522. ObjPrim_SetVertexUVT(objOutline, vertex+0, 10, 0);
  523. ObjPrim_SetVertexUVT(objOutline, vertex+1, 19, 32);
  524. }
  525.  
  526. let mx = 0;
  527. let my = 0;
  528. let fade = 255;
  529. let fadec = 255;
  530. let maxRadius = 54;
  531.  
  532. let lastRemStep = 0;
  533. let countRemStep = ObjEnemyBossScene_GetInfo(objScene, INFO_REMAIN_STEP_COUNT);
  534. let lifeRateRender = 0;
  535. let outlineRender = 0;
  536.  
  537. let lifeTotalMax = ObjEnemyBossScene_GetInfo(objScene, INFO_ACTIVE_STEP_TOTAL_MAX_LIFE);
  538. let lifeTotal = ObjEnemyBossScene_GetInfo(objScene, INFO_ACTIVE_STEP_TOTAL_LIFE);
  539. let lifeRate = min(lifeTotal / lifeTotalMax, lifeRateRender);
  540.  
  541.  
  542.  
  543. ObjRender_SetScaleXYZ(objLife, -1, 1, 1);
  544. ObjRender_SetScaleXYZ(objOutline, -1, 1, 1);
  545.  
  546. ObjRender_SetPosition(objStar, 0, 12, 0);
  547.  
  548. while(GetCommonData("quality", 2)==quality){
  549. ObjSpriteList2D_ClearVertexCount(objStar);
  550. ObjSpriteList2D_ClearVertexCount(objKnub);
  551.  
  552.  
  553. if(outlineRender<1){
  554. ObjRender_SetAlpha(objStar, min(255, 255*(outlineRender*3)-510));
  555. }else{
  556. if(GetPlayerY < max(96, 26+(truncate(countRemStep/12)*12))){
  557. fade = max(fade-10, 85);
  558. }else{fade = min(fade+10, 255);}
  559. ObjRender_SetAlpha(objStar, fade);
  560. }
  561.  
  562.  
  563. objScene = GetEnemyBossSceneObjectID;
  564. if(objScene != ID_INVALID){
  565. let Boss = GetEnemyBossObjectID;
  566. Boss = Boss ~ [objLife];
  567. mx = ObjRender_GetX(Boss[0]);
  568. my = ObjRender_GetY(Boss[0]);
  569. }else{
  570. mx = -400;
  571. my = -400;
  572. outlineRender = 0;
  573. lifeRateRender = 0;
  574. }
  575. RefreshVertex(objLife);
  576.  
  577. if(GetDistance(GetPlayerX,GetPlayerY,mx,my)<maxRadius*1.75){
  578. fadec = max(fadec-10, 85);
  579. }else{fadec = min(fadec+10, 255);}
  580.  
  581. if(!GetCommonData("HPHide",false)){
  582. ObjRender_SetAlpha(objKnub, (fadec/100)*(lifeRateRender*100));
  583. ObjRender_SetAlpha(objOutline, fadec);
  584. ObjRender_SetAlpha(objLife, fadec);
  585. }else{
  586. ObjRender_SetAlpha(objKnub,0);
  587. ObjRender_SetAlpha(objOutline,0);
  588. ObjRender_SetAlpha(objLife, 0);
  589. }
  590.  
  591.  
  592. if(GetCommonData("ForceLifebar", 0) != 0){
  593. outlineRender = 0;
  594. lifeRateRender = 0;
  595. }
  596.  
  597.  
  598. lastRemStep = countRemStep;
  599.  
  600. yield;
  601. }
  602. Obj_Delete(objStar);
  603. Obj_Delete(objKnub);
  604. Obj_Delete(objOutline);
  605. Obj_Delete(objLife);
  606.  
  607. task RefreshVertex(objid){
  608. countRemStep = ObjEnemyBossScene_GetInfo(objScene, INFO_REMAIN_STEP_COUNT);
  609. if(lastRemStep != countRemStep){
  610. lifeRateRender = 0;
  611. }
  612. ascent(iStep in 0 .. countRemStep){
  613. ObjSpriteList2D_SetSourceRect(objStar, 144, 80, 156, 92);
  614. let y = truncate((iStep)/12)*12;
  615. let i = iStep-(12*(y/12));
  616. ObjSpriteList2D_SetDestRect(objStar, 4 + i * 12, 4+y,
  617. 4 + (i + 1) * 12, 16+y);
  618. ObjSpriteList2D_AddVertex(objStar);
  619. }
  620.  
  621. let listLifeDiv = [0]~ObjEnemyBossScene_GetInfo(objScene, INFO_ACTIVE_STEP_LIFE_RATE_LIST);
  622. ascent(iDiv in 0 .. length(listLifeDiv)){
  623. let kang = 360*(listLifeDiv[iDiv]);
  624. let kx = mx+(maxRadius*1.05)*cos(kang-90);
  625. let ky = my+(maxRadius*1.05)*sin(kang-90);
  626. if(1-listLifeDiv[iDiv]<lifeTotal / lifeTotalMax-0.000001){
  627. ObjRender_SetPosition(objKnub, kx, ky, 0);
  628. ObjRender_SetAngleZ(objKnub, kang);
  629. ObjSpriteList2D_AddVertex(objKnub);
  630. }
  631. }
  632.  
  633. lifeTotalMax = ObjEnemyBossScene_GetInfo(objScene, INFO_ACTIVE_STEP_TOTAL_MAX_LIFE);
  634. lifeTotal = ObjEnemyBossScene_GetInfo(objScene, INFO_ACTIVE_STEP_TOTAL_LIFE);
  635. lifeRate = min(lifeTotal / lifeTotalMax, lifeRateRender);
  636.  
  637.  
  638.  
  639. ascent(iVert in 0..countVertex/2){
  640. let indexVert = iVert * 2;
  641. let angle = (360 / (countVertex/2 - 1) * iVert);
  642. angle = min(360*(outlineRender), angle);
  643. let x = (maxRadius)*cos(angle-90);
  644. let y = (maxRadius)*sin(angle-90);
  645. ObjPrim_SetVertexPosition(objOutline, indexVert + 0 , x, y, 0);
  646. x = (maxRadius*1.1)*cos(angle-90);
  647. y = (maxRadius*1.1)*sin(angle-90);
  648. ObjPrim_SetVertexPosition(objOutline, indexVert + 1 , x, y, 0);
  649.  
  650. angle = min(360*(lifeRate), angle);
  651. x = (maxRadius)*cos(angle-90);
  652. y = (maxRadius)*sin(angle-90);
  653. ObjPrim_SetVertexPosition(objLife, indexVert + 0 , x, y, 0);
  654. x = (maxRadius*1.1)*cos(angle-90);
  655. y = (maxRadius*1.1)*sin(angle-90);
  656. ObjPrim_SetVertexPosition(objLife, indexVert + 1 , x, y, 0);
  657. }
  658. ObjRender_SetPosition(objLife, mx, my, 0);
  659. ObjRender_SetPosition(objOutline, mx, my, 0);
  660.  
  661. lifeRateRender = min(1, lifeRateRender+0.02);
  662. outlineRender = min(1, outlineRender+0.016);
  663.  
  664. }
  665. }
  666.  
  667. //----------------------------------------------------
  668. //タイマー表示
  669. //----------------------------------------------------
  670. task BossTimer{
  671. let Digitimg = GetCurrentScriptDirectory() ~ "img/SystemDigit.png";
  672. let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
  673. ObjPrim_SetTexture(obj, Digitimg);
  674. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  675. Obj_SetRenderPriority(obj, 0.80);
  676.  
  677. let ypos = 8;
  678. let yielder = 0;
  679. let grow = 0;
  680. let count = 4;
  681. let maxt = 99.99;
  682. let scale = 1;
  683. let fade = 0;
  684. let bosstime = truncate(maxt);
  685. let cyoff = 0;
  686. let posinc = 0;
  687. if(quality<=1){cyoff = 12}
  688.  
  689. let objScene = ID_INVALID;
  690. let x = (GetStgFrameWidth/2)-( (6+(count-1) * (14*scale))/2) + 30-32;
  691. while(GetCommonData("quality", 2)==quality){
  692. x = (GetStgFrameWidth/2)-( (6+(count-1) * (14*scale))/2) + 30-32;
  693.  
  694. objScene = GetEnemyBossSceneObjectID;
  695. ObjSpriteList2D_ClearVertexCount(obj);
  696. if(objScene != ID_INVALID){
  697. fade = min(fade+0.05, 1);
  698. RenderTimer;
  699. SpellTime(objScene);
  700. if( ObjEnemyBossScene_GetInfo(objScene, INFO_IS_SPELL) ||
  701. ObjEnemyBossScene_GetInfo(objScene, INFO_IS_LAST_SPELL) ||
  702. ObjEnemyBossScene_GetInfo(objScene, INFO_IS_DURABLE_SPELL)){
  703. if(yielder>25){
  704. posinc = max(posinc+0.05, 0);
  705. ypos = min(max(ypos, 6+cyoff)+posinc, 34+cyoff);
  706. }
  707. yielder++;
  708. }else{
  709. posinc = min(posinc-0.05, 0);
  710. ypos = max(min(ypos, 34+cyoff)+posinc, 6+cyoff);
  711. yielder = 0;
  712. }
  713. }else{fade = 0;ypos = 6;}
  714. ObjRender_SetAlpha(obj, min(255*fade, 255));
  715. ObjRender_SetY(obj, ypos+24-16);
  716.  
  717. yield;
  718. }
  719. Obj_Delete(obj);
  720.  
  721. function RenderTimer{
  722. let timer = ObjEnemyBossScene_GetInfo(objScene, INFO_TIMERF)/60;
  723. if(timer < 0){timer = 100;}
  724. timer = min(max(0, timer), maxt);
  725. timer *= 100;
  726.  
  727. let listNum = DigitToArray(timer, count);
  728.  
  729. ascent(iObj in 0 .. count-2){
  730. let num = listNum[iObj];
  731. ObjRender_SetX(obj, x + (iObj-grow/20) * (12+grow));
  732. ObjSpriteList2D_SetSourceRect(obj, num * 16, 0, (num + 1) * 16, 20);
  733. ObjSpriteList2D_SetDestRect(obj, -grow, 0, 16, 20+grow);
  734. ObjSpriteList2D_AddVertex(obj);
  735. }
  736.  
  737. ObjRender_SetX(obj, x + (count-2) * 12 - 2);
  738. ObjSpriteList2D_SetSourceRect(obj, 11 * 16, 0, (11 + 1) * 16, 20);
  739. ObjSpriteList2D_SetDestRect(obj, 0, 0, 16, 20);
  740. ObjSpriteList2D_AddVertex(obj);
  741.  
  742. ascent(iObj in count-2 .. count){
  743. let num = listNum[iObj];
  744. ObjRender_SetX(obj, x + 13 + iObj * 9);
  745. ObjSpriteList2D_SetSourceRect(obj, num * 16, 0, (num + 1) * 16, 20);
  746. ObjSpriteList2D_SetDestRect(obj, 0, 5, 12, 20);
  747. ObjSpriteList2D_AddVertex(obj);
  748. }
  749.  
  750.  
  751. yield;
  752.  
  753. }
  754. task SpellTime(SpellTimeSceneObjectID){
  755. let GetTimer = ObjEnemyBossScene_GetInfo(SpellTimeSceneObjectID, INFO_TIMER);
  756. if(bosstime != GetTimer && GetTimer <11){
  757. if(GetTimer > 4){grow = 6;PlaySound("Timeout",90,0);}
  758. if(GetTimer < 5 && GetTimer>-1){grow = 8;PlaySound("Timeout2",90,0);}
  759. bosstime = GetTimer;
  760. }
  761. if(GetTimer<=10){
  762. ObjRender_SetColor(obj, 255, 100-grow*8, 100-grow*8);
  763. }else{ObjRender_SetColor(obj, 255, 255, 255);}
  764. grow = max(grow-1, 0);
  765. }
  766. }
  767.  
  768. //----------------------------------------------------
  769. //スペルカード取得表示
  770. //----------------------------------------------------
  771. task TGainSpell(score){
  772. let path = GetCurrentScriptDirectory ~ "img/frame2.png";
  773. let pathDigit = GetCurrentScriptDirectory() ~ "img/SystemDigit.png";
  774. let objText = ObjPrim_Create(OBJ_SPRITE_2D);
  775. ObjPrim_SetTexture(objText, path);
  776. ObjSprite2D_SetSourceRect(objText, 0, 99, 264, 131);
  777. ObjSprite2D_SetDestRect(objText, 0, 0, 264, 32);
  778. Obj_SetRenderPriority(objText, 0.8);
  779. ObjRender_SetX(objText, 64);
  780. ObjRender_SetY(objText, 98);
  781.  
  782. let objScore = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
  783. let count = GetNumSize(score);
  784. let listNum = DigitToArray(score, count);
  785. ObjPrim_SetTexture(objScore, pathDigit);
  786. Obj_SetRenderPriority(objScore, 0.8);
  787. ObjRender_SetY(objScore, 140);
  788.  
  789. RefreshVertex;
  790. loop(120){
  791. yield;
  792. }
  793. let alpha = 255;
  794. while(alpha>0){
  795. alpha-=15;
  796. RefreshVertex;
  797. ObjRender_SetAlpha(objText, alpha);
  798. ObjRender_SetAlpha(objScore, alpha);
  799. yield;
  800. }
  801.  
  802. ObjSpriteList2D_ClearVertexCount(objScore);
  803. Obj_Delete(objText);
  804. Obj_Delete(objScore);
  805.  
  806. task RefreshVertex{
  807. ObjSpriteList2D_ClearVertexCount(objScore);
  808. ascent(iObj in 0 .. count){
  809. let num = listNum[iObj];
  810. ObjRender_SetX(objScore, 182 + iObj * 20);
  811. ObjSpriteList2D_SetSourceRect(objScore, num * 16, 0, (num + 1) * 16, 20);
  812. ObjSpriteList2D_SetDestRect(objScore, 0, 0, 20, 25);
  813. ObjSpriteList2D_AddVertex(objScore);
  814. }
  815. }else{yield;}
  816. }
  817.  
  818. task TFailSpell{
  819. let path = GetCurrentScriptDirectory ~ "img/frame2.png";
  820. let objText = ObjPrim_Create(OBJ_SPRITE_2D);
  821. ObjPrim_SetTexture(objText, path);
  822. ObjSprite2D_SetSourceRect(objText, 0, 386, 263, 417);
  823. ObjSprite2D_SetDestRect(objText, -64, -16, 200, 16);
  824. Obj_SetRenderPriority(objText, 0.8);
  825. ObjRender_SetX(objText, GetStgFrameWidth/2-64);
  826. ObjRender_SetY(objText, 128);
  827.  
  828.  
  829. loop(90){
  830. yield;
  831. }
  832. let mov = 2;
  833. ascent(i in 0..30){
  834. mov+=mov/9+0.13;
  835. ObjRender_SetAlpha(objText, 255-255/30*i);
  836. ObjRender_SetY(objText, 128+mov);
  837. ObjRender_SetAngleZ(objText, max(0, i^1.01-1.35));
  838. yield;
  839. }
  840. Obj_Delete(objText);
  841. loop(230){yield}
  842. CloseScript(GetOwnScriptID);
  843. }
  844.  
  845.  
  846. //----------------------------------------------------
  847. //FPS表示
  848. //----------------------------------------------------
  849. task TCurrentFps()
  850. {
  851. let objText = ObjText_Create();
  852. ObjText_SetFontSize(objText, 15);
  853. ObjText_SetFontType(objText, "Dark Crystal");
  854. ObjText_SetFontBold(objText, true);
  855. ObjText_SetFontColorTop(objText, 255, 255, 255);
  856. ObjText_SetFontColorBottom(objText, 0, 0, 0);
  857. ObjText_SetFontBorderType(objText, BORDER_FULL);
  858. ObjText_SetFontBorderColor(objText,0,0,0);
  859. ObjText_SetFontBorderWidth(objText, 2);
  860. ObjText_SetHorizontalAlignment(objText, ALIGNMENT_RIGHT);
  861. ObjText_SetMaxWidth(objText, GetScreenWidth() - 8);
  862. Obj_SetRenderPriority(objText, 1.0);
  863. ObjRender_SetX(objText, 0);
  864. ObjRender_SetY(objText, GetScreenHeight() - 20);
  865.  
  866. loop{
  867. ObjRender_SetAlpha(objText,HUDalpha);
  868. yield;
  869. let fps = GetCurrentFps();
  870. let text = vtos("1.2f", fps);
  871. ObjText_SetText(objText, text);
  872. yield;
  873. }
  874. }
  875.  
  876. task TReplayFps()
  877. {
  878. if(!IsReplay()){return;}
  879.  
  880. let objText = ObjText_Create();
  881. ObjText_SetFontSize(objText, 12);
  882. ObjText_SetFontBold(objText, true);
  883. ObjText_SetFontColorTop(objText, 128, 128, 255);
  884. ObjText_SetFontColorBottom(objText, 64, 64, 255);
  885. ObjText_SetFontBorderType(objText, BORDER_FULL);
  886. ObjText_SetFontBorderColor(objText,255, 255, 255);
  887. ObjText_SetFontBorderWidth(objText, 1);
  888. Obj_SetRenderPriority(objText, 1.0);
  889.  
  890. let px = GetStgFrameLeft() + GetStgFrameWidth() - 18;
  891. let py = GetStgFrameTop() + GetScreenHeight() - 14;
  892. ObjRender_SetX(objText, px);
  893. ObjRender_SetY(objText, py);
  894.  
  895. loop
  896. {
  897. let fps = GetReplayFps();
  898. let text = vtos("02d", fps);
  899. ObjText_SetText(objText, text);
  900. yield;
  901. }
  902. }
  903.  
  904. //----------------------------------------------------
  905. //ユーティリティ
  906. //----------------------------------------------------
  907. function DigitToArray(let digit,let count)
  908. {
  909. let res = [];
  910. digit = truncate(digit);
  911.  
  912. loop
  913. {
  914. let tnum = truncate(digit % 10);
  915. digit /= 10;
  916. res = [tnum] ~ res;
  917. if(truncate(digit) == 0){break;}
  918. }
  919.  
  920. loop(max(0, count - length(res)))
  921. {
  922. res = [0] ~ res;
  923. }
  924.  
  925. return res;
  926. }
  927.  
  928. function GetNumSize(value){
  929. let numsize = 1;
  930. if(value>=10&&value<100){numsize = 2;}
  931. if(value>=100&&value<1000){numsize = 3;}
  932. if(value>=1000&&value<10000){numsize = 4;}
  933. if(value>=10000&&value<100000){numsize = 5;}
  934. if(value>=100000&&value<1000000){numsize = 6;}
  935. if(value>=1000000&&value<10000000){numsize = 7;}
  936. if(value>=10000000&&value<100000000){numsize = 8;}
  937. if(value>=100000000&&value<1000000000){numsize = 9;}
  938. if(value>=1000000000&&value<10000000000){numsize = 10;}
  939. if(value>=10000000000&&value<100000000000){numsize = 11;}
  940. if(value>=1000000000000){numsize = 12;}
  941. return numsize;
  942. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement