Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #東方弾幕風[Package]
- #Title["Yumemi Okazaki Boss Fight by Lunarethic"]
- #System["./ds_system/S_System.txt"]
- #Text["Yumemi Okazaki"]
- #Player["./player/Lunar_Marisa/MarisaA.dnh"]
- #include "./lib/EV_const.dnh"
- let song = ObjSound_Create;
- @Initialize{
- LoadScene();
- StartScript(LoadScriptInThread(GetCurrentScriptDirectory~"./lib/Music_Menu.dnh"));
- StartScript(LoadScriptInThread(GetCurrentScriptDirectory~"./menus/MenuBG.dnh"));
- }
- @MainLoop{
- //SetSkipModeKey(KEY_INVALID);
- yield;
- }
- @Finalize{
- }
- //----------------------------------------------------
- // タイトルシーン
- //----------------------------------------------------
- #include"./menus/Package_LoadScene.dnh"
- //----------------------------------------------------
- // タイトルシーン
- //----------------------------------------------------
- #include"./menus/Package_TitleScene.dnh"
- //----------------------------------------------------
- // ステージシーン
- //----------------------------------------------------
- #include"./menus/Package_StageScene.dnh"
- //----------------------------------------------------
- // 終了シーン
- //----------------------------------------------------
- task TEndScene()
- {
- if(IsReplay())
- {
- TTitleScene();
- return;
- }
- //--------------------------------
- //ステージ終了処理
- FinalizeStageScene();
- //--------------------------------
- //終了シーンスクリプト起動
- let dirModule = GetModuleDirectory();
- let pathScript = GetCurrentScriptDirectory ~ "lunar_system/EndScene.dnh";
- let idScript = LoadScript(pathScript);
- StartScript(idScript);
- while(!IsCloseScript(idScript))
- {
- yield;
- }
- //--------------------------------
- //終了シーン結果処理
- let result = GetScriptResult(idScript);
- alternative(result)
- case(RESULT_SAVE_REPLAY)
- {
- //リプレイ保存
- TReplaySaveScene();
- }
- case(RESULT_END)
- {
- //再生終了
- TTitleScene();
- }
- case(RESULT_RETRY)
- {
- //リトライ
- TStageScene("");
- }
- }
- //----------------------------------------------------
- // 一時停止シーン
- //----------------------------------------------------
- function RunPauseScene()
- {
- RenderSceneToTransitionTexture();
- PauseStageScene(true);
- let dirModule = GetModuleDirectory();
- let pathScript = GetCurrentScriptDirectory ~ "lunar_system/Pause.dnh";
- //--------------------------------
- //一時停止シーンンスクリプト起動
- let idScript = LoadScript(pathScript);
- StartScript(idScript);
- while(!IsCloseScript(idScript))
- {
- yield;
- }
- PauseStageScene(false);
- let res = GetScriptResult(idScript);
- return res;
- }
- //----------------------------------------------------
- // リプレイ選択シーン
- //----------------------------------------------------
- #include"./menus/Package_ReplaySaveScene.dnh"
- #include"./menus/Package_OptionScene.dnh"
- #include"./menus/Package_RankSelectScene.dnh"
- //----------------------------------------------------
- // リプレイ保存シーン
- //----------------------------------------------------
- task TReplaySaveScene()
- {
- let dirModule = GetModuleDirectory();
- let pathScript = GetCurrentScriptDirectory ~ "./menus/Default_ReplaySaveScene.txt";
- //--------------------------------
- //リプレイ保存シーンスクリプト起動
- let idScript = LoadScript(pathScript);
- StartScript(idScript);
- while(!IsCloseScript(idScript))
- {
- yield;
- }
- //--------------------------------
- //タイトルシーンへ遷移
- TTitleScene();
- }
- //----------------------------------------------------
- // 画面遷移エフェクト
- //----------------------------------------------------
- function RenderSceneToTransitionTexture()
- {
- //現在のシーン内容を画面遷移用テクスチャに描画
- let textureName = GetTransitionRenderTargetName();
- RenderToTextureA1(textureName, 0, 100, true);
- }
- task TTransition
- {
- let textureName = GetTransitionRenderTargetName();
- let objImage = ObjPrim_Create(OBJ_SPRITE_2D); //2Dスプライトオブジェクト生成
- Obj_SetRenderPriorityI(objImage, 100); //描画優先度を設定
- ObjPrim_SetTexture(objImage, textureName); //テクスチャを設定
- ObjSprite2D_SetSourceRect(objImage, 0, 0, 640, 480);
- ObjSprite2D_SetDestRect(objImage, 0, 0, 640, 480);
- let alpha = 255;
- while(alpha > 0)
- {
- ObjRender_SetAlpha(objImage, alpha);
- alpha -= 16;
- yield;
- }
- Obj_Delete(objImage);
- }
- //----------------------------------------------------
- // Extra Function for Effect Objects
- //----------------------------------------------------
- function CreateEffectObject(px,py,img,blendtype,left,top,right,bottom){
- let obj=ObjPrim_Create(OBJ_SPRITE_2D);
- LoadTexture(img);
- ObjPrim_SetTexture(obj,img);
- ObjSprite2D_SetSourceRect(obj,left,top,right,bottom);
- ObjSprite2D_SetDestCenter(obj);
- //ObjSprite2D_SetDestRect(obj,-left/2,-top/2,right/2,bottom/2);
- if(blendtype=="ALPHA"){
- ObjRender_SetBlendType(obj,BLEND_ALPHA);
- }
- if(blendtype=="RGB"){
- ObjRender_SetBlendType(obj,BLEND_ADD_RGB);
- }
- if(blendtype=="ARGB"){
- ObjRender_SetBlendType(obj,BLEND_ADD_ARGB);
- }
- ObjRender_SetPosition(obj,px,py,0);
- return obj;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement