[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
選択肢ループの説明が分かりやすくするための参考画像
(参考>MD ロックマンメガワールドより)
面白いゲームを作る時に悩む問題の一つでしょうがコレを
説明したいと思います。これを覚えれば幅も広がると思いますよ。
上の画像は、説明しやすい用で深い意味は、ないです。
(説明用にNsスクリプトで組んだ時に8体も組む気力がなかっただけです)
移植して欲しい作品の一つですがかなり鬼畜LVです。
(私が昔あったMDは、体内電池?の影響で死にましたので)
ロックマンシリーズの特徴の一つがBOSSを倒せばW面にいけるように
なる仕掛け。コレは、選択肢ループの良い例です。
選択肢ループが色々なゲームに使われているので劣化移植派でも
役に立ちます。以下の通り
①すべて選択肢を選ばないと次に進めないようにする。
②攻略キャラの全てグッドEDを見ると隠しモードなどへいける。
要望の多かったNScripterでやってみます。
上の画像みたいになるようにします。(旧式EXE、PSP用)
*si(ステージ選択シーン)
bgm"bgm\W01.wav"
bg"BG\メガW.bmp",4
;サル 河童 ブタをすべて通るとタワーへ行く条件
if %2000=1 && %2001=1 && %2002=1 goto *s_w00
lsp 31,":a;BG/枠 5588.bmp",42,370,255
lsp 32,":a;BG/枠5588.bmp",551,370,255
lsp 33,":a;BG/枠 5588.bmp",290,64,255
*L_btn_si
exbtn 31,1,"P31C32C33S1,(SE\.wav)"
exbtn 32,2,"C31P32C33S1,(SE\.wav)"
exbtn 33,3,"C31C32P33S1,(SE\音データ)
print 2
textoff
btnwait2 %0
btndef ""
csp -1
;これ以降は必ず画面が切り替わるので、ボタン定義とスプライトを消しておく
;bg black,10,300
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if %0 == 0 goto *L_btn_si
if %0 == -1 systemcall rmenu
if %0 == 1 dwave 1,"se/決定音.wav":wait 3000:goto *s_kap
if %0 == 2 dwave 1,"se/決定音":wait 3000:goto *s_buta
if %0 == 3 dwave 1,"se/決定音.wav":wait 3000:goto *s_saru
*s_saru
bgm"bgm\Wセレクト.wav"
bg"BG\BG BRG1.bmp",4
!w2800
goto *s_saru02
*s_saru02
bgm"bgm\BS01.wav"
bg"BG\BSG1.bmp",4
!w15000
mov %2001,1
;選択されるとグロバール変数に1追加する。
goto *si
(サルだけしか描いてませんが他の2体もこのように追加)
ただmov %2000ように他のキャラは、変数番号を変える。
*s_w00
bg"BG\W1.bmp",4
bgm"bgm\W01.wav"
!w8000
goto *W01
(このようにスクリプトを組めば擬似で再現できます)
if %2000=1 && %2001=1 && %2002=1 goto *s_w00の部分が
重要です。C言語での&&と同じ考えなので使いこなせば
楽になります。&&は、両方満たせないと成立しないので
次に進めないと言う条件式です。&&は、いくつも繋げます。
ノベルゲームでも組めますのでマスターしましょう。
マップ選択肢やタイトルの隠しメニュー実装用としてです。