忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【捨丸&KID】如何製作分歧劇情與變數介紹(4)

 

* Global變數為何?

*  Local變數與Global變數

到此之前為止所說明的變數稱為local變數。

  Local變數雖然會被保存於遊戲之中,但是在reset後遊戲本身在從頭開始時內容便會全部消失。(於遊戲途中紀錄的場合時,在那時的變數之值會被作為save data儲存下來)。

  於遊戲中(Local)中所記憶的變數,稱為內部變數。

 

  與此相對,有另一個被稱為Global變數的東西。

  Global變數於遊戲的外側紀錄下data,在遊戲reset之後其值也不會消失不見。

  於遊戲外(Global)所記憶的變數,稱為外部變數。

 

Point:Nscripter的Global變數

  和其他的program soft在global變數、local變數的定義上有時會有些許差異。但是總之在使用Nscripter時記下:於遊戲執行內部所保存的變數為local 變數,而於遊戲外的檔案上留下data保存的變數為global變數。

 

*  Global變數使用例子

  Global變數會在這些時候使用。

 

  只於遊戲的第一輪時表現prolog,第二輪時會跳過prolog開始執行。

  紀錄下遊戲的道具、金錢,當在第二輪開始時能夠持有這些東西開始遊戲。

  在看過結局之後會追加補充劇情。

  在看過全部的結局後,開啟通往真正結局的劇情。

  保存下所輸入的主角姓名,使其在第二輪之後也能夠使用相同的名字開始遊玩。

 

*           在使用Global變數時

在使用Global變數時必須先於定義區域中宣告。

預設值中0~199為local變數,200~4000為Global變數。

  宣告時使用globalon指令。

 

程式碼

globalon

範例

*define

globalon

game

*start

 

Globalon為指令本體。

只要沒有在定義區域中輸入這個指令,則200~4000號的global變數無法使用。

雖然也能夠當成變數使用,但是和local變數不同,在save時不會將數值保存下來因此只能作為暫時利用的變數。

 

一旦做出此宣告之後,於nscr.exe所存在的檔案夾裡會增加gloval.sav的檔案並且將global變數的值保存於此。

 

*  改變global變數的界線

使用value能夠改變global變數和local變數的界線,使兩者的個數改變。

當local變數的號碼已滿時可以使用。

 

程式碼

;value<界線值>

 

範例

;value 500

*define

globalon

game

*start

 

  ;value為指令本體。

  和普通的指令不同,必須在*define上的第一行宣告。

  500為界線值。此例中到變數499號為止能夠作為local變數使用。

 

  同樣會在第一行宣告的指令還有;mode800(將畫面切換為800x600 mode:請參考109頁),與其同時使用的狀況請輸入;mode800,value500。

 

*  在使用global變數必須注意的事項

Global變數雖然能夠被當成普通的變數使用。

但是必須注意的是,global變數的值會一直被保持著。

如果用於演算系的指令裡,每當執行遊戲就會被執行計算。因此在遊戲終了後想要將其清空的值請使用local變數。

 

*  global變數範例

global變數的範例。

示範只有在第一輪遊戲中顯現prolog的例子。

Sample 只在第一輪顯現prolog  /02/02-03-01/00.txt

 

;mode800

*define

clickstr"!?。」",2

globalon ;開啟global變數

game

*start

setwindow 45,354,25,4,22,22,0,1,20,1,1,#bbbbbb,40,340,620,460

bg "BG\093.JPG",1

if %900=1 goto *honbun

*prologue

每天一大早,天譴寶寶都會說你好!

*honbun

天譴寶寶說 你好!

*ending

mov %900,1

end

 

 

 

試著使用重複處理

*  所謂的重複處理是?

  在製作普通的novel game時不太會用到,但是在開始製作較花費功夫的處理時常會使用到—for~next命令。

  為「將同樣的重複X次」意義的命令。

 

*  for~next的用途

  for~next命令會依據所設定的次數,重複執行輸入在for和next之間的處理。

  最常被用到的用法是拿來做計算回數的處理。

  例如會在下面的場合用到。

 

  以容積為5的杯子來汲水至容積為50的水桶中→重複到水滿了為止。

  將圖像從畫面外(x640)移動至畫面內(x30)這動作重複表示

使用mp3的BGM音量增加到所設定的大小。

  blt動畫處理的控制。

 

  請先記住「在使用到重複處理時就用for~next」。

 

*  命令文的結構

  程式碼

  for 設定的初期值 目標數值 step數目

  各種處理

  next

  範例

  for %1=0 to 200 step 20

  各種處理

  next

 

  for為命令本體。

  %1為變數。0為變數的初期值。在進行記算次數的處理時會從這個數值開始。

  to 200是目標值。變數到達這個數值後所重複的各種處理就會停止,開始執行next之後的命令。

  step20為步幅大小,設定的是每次增減時的數值差大小。在省略沒有輸入時預設為1。

 

  在此範例中,%1會從0開始每次增加20直到到達目標值200之前會重複for和next之間的處理十次。

 

*  使用範例

 

;mode800

*define

clickstr"!?。」",2

game

*start

bg "BG\093.JPG",1

lsp 0,":c;butterflyUp.jpg",224,95

print 1

for %1=0 to 200 step 20

msp 0,50,25,255

print 1

wait 500

next

click

end

 

 

 

亂數處理

*  所謂的亂數是?

  讓電腦隨機選擇的數字稱為亂數。

  例如在走過暴風雨中的吊橋時會有40%的失敗機率、考試會有70%的合格機率等想要使用機率來判定時,或是隨機變更進入書目時的圖像、每次開始遊戲時的畫面上的短文隨機出現等各種處理上會用到亂數。

  Nscripter在想用到亂數時必須使用rnd(注意不是md是”r””n””d”)命令。

 

*  從0到任意數值之間亂數選取數值

  程式碼

  rnd 變數名稱,數值上限

  範例

  rnd %3,100

  rnd是命令本體。

  為RaNDom的縮寫。

  %3為利用亂數產生命令的數值所代入的變數名稱。所產生的數值範圍為從0開始到上限值-1為止。

  於範例中會從0~99的數值中隨機挑選一個數值代入變數%3。

 

  *  從某個數值到某個數值之間亂數選取數值

  當想要從某個數值到某個數值之間亂數選取一個數字時使用rnd2命令。

  程式碼

  rnd2 變數名稱,設定的開始數值,設定的終點數值

  範例

  rnd2 %3,80,150

  rnd2是亂數命令的本體。

  %3是變數名稱。

  範例的意義為於數值80到150中隨機選取一的數字代入變數%3。

 

拍手[0回]

PR

この記事にコメントする

お名前
タイトル
メール
URL
コメント
絵文字
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
パスワード

この記事へのトラックバック

この記事にトラックバックする