Communicate Station Laboratory
Index
CSL Network
Eden サーバ
ーザーアート
CSL工房
ウンロード
材集
Bbs
Chat
Webring
Link
発日誌
用規約
タッフ募集



■ナビゲーション
Menu →  CSL工房 →  Nscripter tips →  やさてのソースコード



CNS 6.00bソースコード

やさしいてのひらのシステム部分のソースです。画像・音楽閲覧機能を実装済みです。 簡単な説明はありますが、ノンクレームノンリターンでご使用願います(^^; *define ;FILE HEADER ;作品情報記述 ; ;CSL Software ;"やさしいてのひら -CSL Interactive Novels vol.7 ver.1.01" ; ;CSL Novels system for NScripter ver.6.00beta-f1(粒子無しバージョン) ;(c)2004 CSL Software ;変数使用履歴 ;グローバル変数 ;200 :オープニングブロック変数(as global) ;201-300 :イベント画像クラス(as global) ; ;ローカル変数 ;0-5 :各モード処理用変数(as local) ; :カスタマイズは5を使用 ;10-99 :イベントフラグ ; ;スプライト処理 ;1-25が使用可能(消し処理用 ; ;カスタマイズ ;スプライト30-50はシステムカスタマイズが使用します。絶対に使用しないこと! ;尚、select命令は一切使えません!必ずcsel命令を使用してください。 ;ヘッダ終了 ;ここ以下より実際のコードを書きます ;定義区画 ;初期処理(必ず必要です) ;グローバル変数を有効化する globalon ;オープニング通過チェック mov %200,0 ;nsaアーカイブを展開する nsa ;フォントと色 defaultfont "MS ゴシック" lookbackcolor #00ffff transmode leftup ;メニュー・読み返しカラー selectcolor #aaaaff,#ffffff menuselectcolor #ffffff,#6666ff,#111177 ;バージョン情報 caption "やさしいてのひら -CSL Interactive Novels vol.7 ver.1.01" exec_dll "pverinfo.dll/version.jpg" ;自動文字送り・インターバル設定 automode automode_time 1500 ;エフェクト指定(重要) effect 10,11,500 effect 20,10,500 effect 30,1 effect 40,10,300 ;エフェクトの番号は ;10:カーテン ;20:フェード ;30:瞬時表示(システム用) ;40:フェード(メニュー用) ;フェード以外使わないとは思うが一応 ;ツールバーカスタマイズ ;粒子プラグインとは共存できません粒子を使用するときは必ずkillmenuで resetmenu insertmenu "終了",END insertmenu "バージョン情報",VERSION insertmenu "シアターモード",AUTO insertmenu "設定",SUB ; insertmenu "テキスト",SUB,1 ; insertmenu "遅い",TEXTSLOW,2 ; insertmenu "普通",TEXTMIDDLE,2 ; insertmenu "速い",TEXTFAST,2 insertmenu "画面サイズ",SUB,1 insertmenu "Full screen",FULL,2 insertmenu "Window(推奨)",WINDOW,2 ; insertmenu "文字送り方法",SUB,1 ; insertmenu "行ごと(推奨)",CLICKDEF,2 ; insertmenu "ページごと",CLICKPAGE,2 insertmenu "フォント",FONT,1 ;粒子プラグイン使用時はこちらを展開すること ; killmenu 7 : killmenu 4 ; killmenu 4 ; killmenu 3 ;右クリックメニュー rmenu "■ セーブ",save,"■ ロード",load,"■ 早送り",skip,"■ 始めに戻る",reset,"■ 読み返す",lookback,"■ 会話ウィンドウ消去",windowerase ;メニューウィンドウ設定 menusetwindow 18,18,3,4,1,1,#ffffff ;セーブロード画面 savename "→セーブするファイルを選択してください","→ロードするファイルを選択してください","file:" savenumber 11 lookbackbutton "./system/upon.bmp","./system/upoff.bmp","./system/downon.bmp","./system/downoff.bmp" ;Pluginの読み込み Plugin copyright (c)Takashi Toyama ;雪プラグイン=>オフ(ver.b) ;setlayer 20,100,"snow.dll" ;20番を雪エフェクト用に確保 ;breakup.dll ;粒子エフェクト ;pverinfo.dll ;バージョン情報 ;立ち絵の優先順位を100番に下げる。 humanz 100 ;テキストウィンドウを、立ち絵と同じ位置に挿入します。 windowback ;通常の右クリックメニューを出さないようにしとく。 ;roff ;システムカスタマイズを宣言します。 textgosub *customise ;ゲームブロック ;実行宣言 game ;ゲーム開始前の裏処理。 ;これもシステムカスタマイズ用です。 ;終わったら通常オープニングへこっそり飛ばしておきます *start ;まずは画面消去とリペイントから。 csp -1 ;まずはじめに使用するボタンをコッソリ読み込んでおく lsph 31,":c/2,0,3;savebt.bmp",580,340 lsph 32,":c/2,0,3;loadbt.bmp",580,370 lsph 33,":c/2,0,3;menubt.bmp",580,400 ;ここまでやったらオープニングへ飛ばす goto *starton ;================================================================================= ;!以下システムカスタマイズブロック! ;ココの内容については改造時に保障いたしかねます。 ;ここからクリック待ち命令に移る *customise erasetextwindow 0 ;メニューで使ったウィンドウを消す ;ついでにクリア命令を通しておく csp 30 gosub *clear repaint btndef clear ;読み込んだボタンを表示させる vsp 31,1 vsp 32,1 vsp 33,1 spbtn 31,31 spbtn 32,32 spbtn 33,33 print 1 ;テキストウィンドウが消えないモードにしてみる erasetextwindow 0 ;テキスト処理コアループ textbtnwait %5 ;画像書き直し repaint ;ボタンと右クリックで各メニューを表示しよう if %5==-1 goto *rmenu if %5==31 goto *ssavemenu if %5==32 goto *sloadmenu if %5==33 goto *rmenu ;それ以外の場所をクリックしたら通常処理させる if %5==0 goto *textnext ;↑ここまで↑ ;通常のテキスト処理はここから行う *textnext ;クリック処理命令。 texec ;テキストウィンドウを元のモードに戻す erasetextwindow 1 ;セーブ使用可能にする saveon ;で、戻れ。 return ;右クリックorメニューボタン押した時の処理 *rmenu ;ボタンを一時的に消す vsp 31,0 vsp 32,0 vsp 33,0 ;セーブロード用に使うボタンをごっそりと作る lsph 30,":c;sysmenu.bmp",0,0 vsp 30,1 lsp 1,":c/2,0,3;syssave.jpg",160,100 ;*ssavemenu lsp 2,":c/2,0,3;sysload.jpg",160,170 ;*sloadmenu lsp 3,":c/2,0,3;sysvisual.jpg",160,240 ;*sclearg lsp 4,":c/2,0,3;sysrestart.jpg",160,380 ;*restart lsp 5,":c/2,0,3;syslookback.jpg",160,310 ;*slookback ;表示 print 1 wait 10 ;順を確認して ;スプライトをボタンにする spbtn 1,1 spbtn 2,2 spbtn 3,3 spbtn 4,4 spbtn 5,5 ;メニューコアループ *sysmenuloop btnwait %0 if %0=0 goto *sysmenuloop if %0=-1 goto *customise if %0=1 gosub *clear : goto *ssavemenu if %0=2 gosub *clear : goto *sloadmenu if %0=3 gosub *clear : goto *sclearg if %0=4 goto *restart if %0=5 goto *slookback goto *customise ;リセット処理 *restart reset ;画面消去処理 *sclearg ;こう言う方法を取るんだそうです… vsp 30,0 vsp 31,0 vsp 32,0 vsp 33,0 systemcall windowerase vsp 30,1 goto *customise ;回想モードに入る *slookback ;画面を消去 gosub *clear ;画面を回想モードに変える lsph 30,":c;skaisou.jpg",0,0 vsp 30,1 ;回想モード処理 systemcall lookback ;終わったら背景クリア csp 30 goto *customise ;セーブボタン押された時の処理 *ssavemenu ;ボタンを一時的に消す vsp 31,0 vsp 32,0 vsp 33,0 ;セーブの画面下地をロードする lsph 30,":a;savewindow.bmp",0,0 vsp 30,1 systemcall save goto *customise ;ロードボタン押された時の処理 *sloadmenu ;ボタンを一時的に消す vsp 31,0 vsp 32,0 vsp 33,0 ;ロードの画面下地をロードする lsph 30,":a;loadwindow.bmp",0,0 vsp 30,1 systemcall load goto *customise ;=================================================================== ;--------------------------------------- ;選択肢処理 ;--------------------------------------- *customsel ;新命令cselと対になっている特殊なラベル名・・・らしい skipoff ;スキップ状態の解除。 ;テキストウィンドウの固定 erasetextwindow 0 ;メニューで使ったウィンドウを消す ;ついでにクリア命令を通しておく csp 30 gosub *clear repaint btndef clear ;ボタンを再描画 vsp 31,1 vsp 32,1 vsp 33,1 spbtn 31,31 spbtn 32,32 spbtn 33,33 print 1 getcselnum %0 ;いくつの選択肢があったかを取得 getcursorpos %1,%2 cselbtn 0,50,%1,%2 ;選択肢ボタン ;左から順に、セレクト番号(0からインデックス)、ボタン番号、x座標,y座標 add %2,22 cselbtn 1,51,%1,%2 if %0>2 add %2,22:cselbtn 2,52,%1,%2 if %0>3 add %2,22:cselbtn 3,53,%1,%2 if %0>4 add %2,22:cselbtn 4,54,%1,%2 *csel_loop selectbtnwait %0 ;csel時のボタン命令 repaint if %0==0 goto *csel_loop if %0==-1 goto *cselrmenu if %0==31 goto *cselssavemenu if %0==32 goto *cselsloadmenu if %0==33 goto *cselrmenu ;システム部分の動作定義 if %0>=50 & %0<=54 saveon:sub %0,50:erasetextwindow 1:cselgoto %0 ;cselgotoは、選択した番号の通りにジャンプ インデックスは0から goto *csel_loop ;以下csel専用のメニューを出すための命令セット ;右クリックorメニューボタン押した時の処理 *cselrmenu ;ボタンを一時的に消す vsp 31,0 vsp 32,0 vsp 33,0 ;メニューで使ったウィンドウを消す ;ついでにクリア命令を通しておく csp 30 gosub *clear repaint btndef clear ;セーブロード用に使うボタンをごっそりと作る lsph 30,":c;sysmenu.bmp",0,0 vsp 30,1 lsp 1,":c/2,0,3;syssave.jpg",160,100 ;*cselssavemenu lsp 2,":c/2,0,3;sysload.jpg",160,170 ;*cselsloadmenu lsp 3,":c/2,0,3;sysvisual.jpg",160,240 ;*sclearg lsp 4,":c/2,0,3;sysrestart.jpg",160,380 ;*restart ; lsp 5,":c/2,0,3;syslookback.jpg",160,380 ;*slookback ;表示 print 1 wait 10 ;順を確認して ;スプライトをボタンにする spbtn 1,1 spbtn 2,2 spbtn 3,3 spbtn 4,4 ; spbtn 5,5 ;メニューコアループ *cselsysmenuloop btnwait %0 if %0=0 goto *cselsysmenuloop if %0=-1 goto *customsel if %0=1 gosub *clear : goto *cselssavemenu if %0=2 gosub *clear : goto *cselsloadmenu if %0=3 gosub *clear : goto *cselsclearg if %0=4 goto *restart ; if %0=5 goto *slookback goto *customsel ;画面消去処理 *cselsclearg vsp 30,0 vsp 31,0 vsp 32,0 vsp 33,0 systemcall windowerase vsp 30,1 goto *customsel ;セーブボタン押された時の処理 *cselssavemenu ;ボタンを一時的に消す vsp 31,0 vsp 32,0 vsp 33,0 ;セーブの画面下地をロードする lsph 30,":a;savewindow.bmp",0,0 vsp 30,1 systemcall save goto *customsel ;ロードボタン押された時の処理 *cselsloadmenu ;ボタンを一時的に消す vsp 31,0 vsp 32,0 vsp 33,0 ;ロードの画面下地をロードする lsph 30,":a;loadwindow.bmp",0,0 vsp 30,1 systemcall load goto *customsel ;============================================================================== ;設定エリア完了 ; ;0.txtにはメニュー・各種設定までが含まれます。シナリオは1.txt以降 ;=================================================================================== ;以下実行ブロック *starton ;テキスト窓のフォント色 #ffffff ;システムボタンを消す(消去処理) vsp 31,0 vsp 32,0 vsp 33,0 ;スタート時のオープニングデモ ;OP回避式 if %200=1 goto *menuon ;CSLロゴとジングル ;bg "csllogo.jpg",20 ;wait 2000 ; bg black,20 ;wait 100 ;ムービー再生(止めます。必要な場合は有効に) mpegplay "csllogo.mpg",1 ; wait 100 ;ここまで ;================================================================================== ;メインメニュー展開 *menuon ;下準備 gosub *clear mov %200,1 ;念のためここでテキストウィンドウを有効化する ;texton ;ベース曲再生 wait 100 mp3loop "./music/04.mp3" ;タイトルを表示 wait 100 bg "title.jpg",40 wait 100 ;メニューを展開 ;ボタン用スプライト作成 lsp 1,":c/2,0,3;start.jpg",450,300 ;*gamestart lsp 2,":c/2,0,3;load.jpg",450,340 ;*loadf lsp 3,":c/2,0,3;special.jpg",450,380 ;*special lsp 4,":c/2,0,3;exit.jpg",450,420 ;*end0 ;表示 print 40 wait 100 ;順を確認して ;スプライトをボタンにする spbtn 1,1 spbtn 2,2 spbtn 3,3 spbtn 4,4 ;ループ前に変数を戻しておく(必須) mov %0,0 ;メニュー用コアループ *menuloop wait 50 btnwait %0 if %0=0 goto *menuloop if %0=-1 goto *menuloop if %0=1 goto *gamestart if %0=2 goto *loadf if %0=3 goto *special if %0=4 goto *end0 goto *menuloop ;メインメニューはここまで ;================================================================================ ;以下にシステム関連の処理を記述する ;スペシャルモードのメニュー *special ;クリア処理 gosub *clear stop ;背景とスプライトの配置 bg "special_back.jpg",40 lsp 1,":c/2,0,3;cg.jpg",10,300 ;*cgmode lsp 2,":c/2,0,3;music.jpg",10,340 ;*musicmode lsp 3,":c/2,0,3;movie.jpg",10,380 ;*moviemode lsp 4,":c/2,0,3;exitsp.jpg",10,420 ;*menuon ;ボタンにする spbtn 1,1 spbtn 2,2 spbtn 3,3 spbtn 4,4 print 40 ;変数を戻す mov %0,0 ;スペシャルメニューループ *spmenuloop wait 50 btnwait %0 if %0=0 goto *spmenuloop if %0=-1 goto *spmenuloop if %0=1 goto *cgmode if %0=2 goto *musicmode if %0=3 goto *moviemode if %0=4 goto *menuon goto spmenuloop ;================================================================================ ;ファイルロード時の処理 *loadf csp 1 csp 2 csp 3 csp 4 bg black,1 systemcall load wait 100 goto *menuon ;=============================================================================== ;ムービーを見るモード(再生して帰るだけです) *moviemode ;前処理 stop gosub *clear mpegplay "op1.mpg",1 wait 100 goto *special ;=============================================================================== ;音楽聴くモード、ファイル配置に注意 ;前処理 *musicmode ;不要部分の消去 gosub *clear ;全音楽停止 stop ;基本台紙を読み込み bg "musicmode.jpg",40 ;曲再生時の戻り部分 *musicmode1 ;不要部分の消去(念のため2重定義を防止) gosub *clear ;ボタン作成して表示 lsp 1,":c/2,0,3;tr01.jpg",320,70 lsp 2,":c/2,0,3;tr02.jpg",320,90 lsp 3,":c/2,0,3;tr03.jpg",320,110 lsp 4,":c/2,0,3;tr04.jpg",320,130 lsp 5,":c/2,0,3;tr05.jpg",320,150 lsp 6,":c/2,0,3;tr06.jpg",320,170 lsp 7,":c/2,0,3;tr07.jpg",320,190 lsp 8,":c/2,0,3;tr08.jpg",320,210 lsp 9,":c/2,0,3;tr09.jpg",320,230 lsp 10,":c/2,0,3;tr10.jpg",320,250 lsp 11,":c/2,0,3;tr11.jpg",320,270 lsp 12,":c/2,0,3;tr12.jpg",320,290 lsp 13,":c/2,0,3;tr13.jpg",320,310 lsp 14,":c/2,0,3;tr14.jpg",320,330 lsp 17,":c/2,0,3;tr15.jpg",320,350 lsp 15,":c/2,0,3;exit.jpg",320,400 lsp 16,":c/2,0,3;stop.jpg",470,400 print 1 ;スプライト化する spbtn 1,1 spbtn 2,2 spbtn 3,3 spbtn 4,4 spbtn 5,5 spbtn 6,6 spbtn 7,7 spbtn 8,8 spbtn 9,9 spbtn 10,10 spbtn 11,11 spbtn 12,12 spbtn 13,13 spbtn 14,14 spbtn 15,15 spbtn 16,16 spbtn 17,17 ;音楽用コアループ *musicloop wait 50 btnwait %1 if %1=0 goto *musicloop if %1=-1 goto *musicloop if %1=1 goto *tr1 if %1=2 goto *tr2 if %1=3 goto *tr3 if %1=4 goto *tr4 if %1=5 goto *tr5 if %1=6 goto *tr6 if %1=7 goto *tr7 if %1=8 goto *tr8 if %1=9 goto *tr9 if %1=10 goto *tr10 if %1=11 goto *tr11 if %1=12 goto *tr12 if %1=13 goto *tr13 if %1=14 goto *tr14 if %1=17 goto *tr15 if %1=15 goto *musicexit if %1=16 goto *trstop goto *musicloop ;===================================== ;各トラックの再生処理 *tr1 mp3loop "./music/01.mp3" wait 100 mov %1,0 goto *musicmode1 *tr2 mp3loop "./music/02.mp3" wait 100 mov %1,0 goto *musicmode1 *tr3 mp3loop "./music/03.mp3" wait 100 mov %1,0 goto *musicmode1 *tr4 mp3loop "./music/04.mp3" wait 100 mov %1,0 goto *musicmode1 *tr5 mp3loop "./music/05.mp3" wait 100 mov %1,0 goto *musicmode1 *tr6 mp3loop "./music/06.mp3" wait 100 mov %1,0 goto *musicmode1 *tr7 mp3loop "./music/07.mp3" wait 100 mov %1,0 goto *musicmode1 *tr8 mp3loop "./music/08.mp3" wait 100 mov %1,0 goto *musicmode1 *tr9 mp3loop "./music/09.mp3" wait 100 mov %1,0 goto *musicmode1 *tr10 mp3loop "./music/10.mp3" wait 100 mov %1,0 goto *musicmode1 *tr11 mp3loop "./music/11.mp3" wait 100 mov %1,0 goto *musicmode1 *tr12 mp3loop "./music/12.mp3" wait 100 mov %1,0 goto *musicmode1 *tr13 mp3loop "./music/13.mp3" wait 100 mov %1,0 goto *musicmode1 *tr14 mp3loop "./music/14.mp3" wait 100 mov %1,0 goto *musicmode1 *tr15 mp3loop "./music/15.mp3" wait 100 mov %1,0 goto *musicmode1 ;音楽停止処理 *trstop stop wait 100 mov %1,0 goto *musicmode1 ;音楽モード終了処理 *musicexit stop gosub *clear goto *special ;音楽モードここまで ;============================================================================ *cgmode ;cgモード(未テスト。もっと軽い方法があるかも?) ; ;このモードを使う場合、イベントCGに01-Xまで番号をつけ、そのCGを通過したら ;対応するグローバル変数200+Xに1を代入してください。通過して無い場合は0です。 ;1ページで20枚表示します。適宜コードを変えて表示数を増やしてください。 ;ここでは40枚を基本に、2ページで構成します。 ;前処理(各値の消去・書き換え等) gosub *clear stop ;台紙の読み込み(処理を軽くするため最初の一回のみにすると良いでしょう。) bg "cgmode_back.jpg",40 goto *cgpage1 ======================================= ;1ページ目の処理(ページ分用意します) *cgpage1 ;画面を消去/音楽停止 gosub *clear stop ;台紙読み込み bg "cgmode_back.jpg",30 ;選択画面描画部分です。 ;全てif文で画面を構成します。これが最重要部分です。 ;通過フラグ=1(true)ならば指定場所にサムネイルボタンを表示します。 ;対応するグローバル変数は201-299,これをcg01-cg99,cgs01-cgs99へ対応 ;します。 ; ;ここではスプライト化までの作業をしておきます。 ;1段目 if %201=1 lsp 1,":c/2,0,3;cg01s.jpg",0,0 : spbtn 1,1 if %202=1 lsp 2,":c/2,0,3;cg02s.jpg",128,0 : spbtn 2,2 if %203=1 lsp 3,":c/2,0,3;cg03s.jpg",256,0 : spbtn 3,3 if %204=1 lsp 4,":c/2,0,3;cg04s.jpg",384,0 : spbtn 4,4 if %205=1 lsp 5,":c/2,0,3;cg05s.jpg",512,0 : spbtn 5,5 ;2段目 if %206=1 lsp 6,":c/2,0,3;cg06s.jpg",0,96 : spbtn 6,6 if %207=1 lsp 7,":c/2,0,3;cg07s.jpg",128,96 : spbtn 7,7 if %208=1 lsp 8,":c/2,0,3;cg08s.jpg",256,96 : spbtn 8,8 if %209=1 lsp 9,":c/2,0,3;cg09s.jpg",384,96 : spbtn 9,9 if %210=1 lsp 10,":c/2,0,3;cg10s.jpg",512,96 : spbtn 10,10 ;3段目 if %211=1 lsp 11,":c/2,0,3;cg11s.jpg",0,192 : spbtn 11,11 if %212=1 lsp 12,":c/2,0,3;cg12s.jpg",128,192 : spbtn 12,12 if %213=1 lsp 13,":c/2,0,3;cg13s.jpg",256,192 : spbtn 13,13 if %214=1 lsp 14,":c/2,0,3;cg14s.jpg",384,192 : spbtn 14,14 if %215=1 lsp 15,":c/2,0,3;cg15s.jpg",512,192 : spbtn 15,15 ;4段目 if %216=1 lsp 16,":c/2,0,3;cg16s.jpg",0,288 : spbtn 16,16 if %217=1 lsp 17,":c/2,0,3;cg17s.jpg",128,288 : spbtn 17,17 if %218=1 lsp 18,":c/2,0,3;cg18s.jpg",256,288 : spbtn 18,18 if %219=1 lsp 19,":c/2,0,3;cg19s.jpg",384,288 : spbtn 19,19 if %220=1 lsp 20,":c/2,0,3;cg20s.jpg",512,288 : spbtn 20,20 ;機能ボタン ;lsp 21,":c/2,0,3;back.jpg",340,420 : spbtn 21,21 lsp 22,":c/2,0,3;exit.jpg",390,420 : spbtn 22,22 ;lsp 23,":c/2,0,3;next.jpg",540,420 : spbtn 23,23 ;表示 print 1 ;イベントスイッチ用コアループ ;この部分で見れるcgを選択するようにします。基本は音楽モードと同じです *cgpage1loop btnwait %1 if %1=0 goto *cgpage1loop if %1=-1 goto *cgpage1loop if %1=1 goto *cg01 if %1=2 goto *cg02 if %1=3 goto *cg03 if %1=4 goto *cg04 if %1=5 goto *cg05 if %1=6 goto *cg06 if %1=7 goto *cg07 if %1=8 goto *cg08 if %1=9 goto *cg09 if %1=10 goto *cg10 if %1=11 goto *cg11 if %1=12 goto *cg12 if %1=13 goto *cg13 if %1=14 goto *cg14 if %1=15 goto *cg15 if %1=16 goto *cg16 if %1=17 goto *cg17 if %1=18 goto *cg18 if %1=19 goto *cg19 if %1=20 goto *cg20 ; if %1=21 goto *cgpage1loop if %1=22 goto *special if %1=23 goto *cgpage2 goto *cgpage1loop ;各cg表示部分の設定 ;//1−10// *cg01 gosub *clear textoff bg "cg01.jpg",30 systemcall windowerase goto *cgpage1 *cg02 gosub *clear textoff bg "cg02.jpg",30 systemcall windowerase goto *cgpage1 *cg03 gosub *clear textoff bg "cg03.jpg",30 systemcall windowerase goto *cgpage1 *cg04 gosub *clear textoff bg "cg04.jpg",30 systemcall windowerase goto *cgpage1 *cg05 gosub *clear textoff bg "cg05.jpg",30 systemcall windowerase goto *cgpage1 *cg06 gosub *clear textoff bg "cg06.jpg",30 systemcall windowerase goto *cgpage1 *cg07 gosub *clear textoff bg "cg07.jpg",30 systemcall windowerase goto *cgpage1 *cg08 gosub *clear textoff bg "cg08.jpg",30 systemcall windowerase goto *cgpage1 *cg09 gosub *clear textoff bg "cg09.jpg",30 systemcall windowerase goto *cgpage1 *cg10 gosub *clear textoff bg "cg10.jpg",30 systemcall windowerase goto *cgpage1 ;//11−20// *cg11 gosub *clear textoff bg "cg11.jpg",30 systemcall windowerase goto *cgpage1 *cg12 gosub *clear textoff bg "cg12.jpg",30 systemcall windowerase goto *cgpage1 *cg13 gosub *clear textoff bg "cg13.jpg",30 systemcall windowerase goto *cgpage1 *cg14 gosub *clear textoff bg "cg14.jpg",30 systemcall windowerase goto *cgpage1 *cg15 gosub *clear textoff bg "cg15.jpg",30 systemcall windowerase goto *cgpage1 *cg16 gosub *clear textoff bg "cg16.jpg",30 systemcall windowerase goto *cgpage1 *cg17 gosub *clear textoff bg "cg17.jpg",30 systemcall windowerase goto *cgpage1 *cg18 gosub *clear textoff bg "cg18.jpg",30 systemcall windowerase goto *cgpage1 *cg19 gosub *clear textoff bg "cg19.jpg",30 systemcall windowerase goto *cgpage1 *cg20 gosub *clear textoff bg "cg20.jpg",30 systemcall windowerase goto *cgpage1 ======================================= ======================================================================= ;ゲーム開始時の処理 *gamestart ;やさしいてのひらではここでゲーム選択画面を表示させます。 ;想い編はtrueエンドクリア後、グローバル変数250へ1を返すので、 ;コレで判定します。 ;不要スプライトを消す gosub *clear ;章選択画面の画像を作り出す bg "episodedselect.jpg",1 ;選択用ボタンを生成する lsp 1,":c/2,0,3;normalmode.jpg",100,120 ;*gamestart2 lsp 2,":c/2,0,3;dramamode.jpg",100,190 ;*dramastart if %250==1 lsp 3,":c/2,0,3;omoi.jpg",100,260 ;*omoistart lsp 4,":c/2,0,3;modoru.jpg",100,330 ;*restart ;表示 print 1 wait 10 ;順を確認して ;スプライトをボタンにする spbtn 1,1 spbtn 2,2 if %250==1 spbtn 3,3 spbtn 4,4 ;章セレクトメニュー用ループ *shouselectloop btnwait %0 if %0=0 goto *shouselectloop if %0=-1 goto *shouselectloop if %0=1 goto *gamestart2 if %0=2 goto *dramastart if %0=3 goto *omoistart if %0=4 goto *restart ;通常ゲーム開始スタック *gamestart2 ;ウィンドウ生成 gosub *windowopen ;1.txtへ飛ばす goto *gamestart3 ;ドラマモード開始スタック *dramastart ;不要スプライトを消す gosub *clear %0==0 repaint ;ドラマ選択画面の画像を作り出す bg "episodedselect.jpg",1 ;選択用ボタンを生成する lsp 1,":c/2,0,3;1shoubt.jpg",100,120 ;*1shou lsp 2,":c/2,0,3;2shoubt.jpg",100,190 ;*2shou lsp 3,":c/2,0,3;3shoubt.jpg",100,260 ;*3shou lsp 4,":c/2,0,3;4shoubt.jpg",100,330 ;*4shou lsp 5,":c/2,0,3;modoru.jpg",100,400 ;*restart ;表示 print 1 wait 10 ;順を確認して ;スプライトをボタンにする spbtn 1,1 spbtn 2,2 spbtn 3,3 spbtn 4,4 spbtn 5,5 ;章セレクトメニュー用ループ *dramaselectloop btnwait %0 if %0=0 goto *dramaselectloop if %0=-1 goto *dramaselectloop if %0=1 goto *nanachan if %0=2 goto *kioku if %0=3 goto *kakomirai if %0=4 goto *hoshi if %0=5 goto *gamestart ;想い編開始スタック *omoistart gosub *windowopen goto *omoistart2 ;================================================================== ;ウィンドウ作成サブルーチン *windowopen ;画面クリア gosub *clear wait 100 bg black,1 ;ウィンドウを作る setwindow 40,350,22,4,22,22,0,2,20,0,1,":a;./system/text.bmp",20,340 ;こっそり再処理させる allsphide wait 10 allspresume return ;クリア処理 ;スプライト1-25を消してメモリを開放、ローカル変数を0にします ;csp-1より軽いと思われる *clear csp 1 csp 2 csp 3 csp 4 csp 5 csp 6 csp 7 csp 8 csp 9 csp 10 csp 11 csp 12 csp 13 csp 14 csp 15 csp 16 csp 17 csp 18 csp 19 csp 20 csp 21 csp 22 csp 23 csp 24 csp 25 mov %0,0 mov %1,0 return ;=================================================================== ;終了処理。 *end0 end ;-------------------------------EOF-------------------------------