2011年9月1日星期四

吉里吉里教學---遊戲變數 vs 系統變數 vs 暫時變數

(建議在閱讀本篇教學之前,請先閱讀KAG教學---flag,變數(1))

之前教了三種不同的變數,到底什麼時候用哪種變數?>( ゚ω゚ s)

(k ゚∀゚)<這三種變數最大的不同之處是變數儲存的檔案有所不同。

(k ゚∀゚)<遊戲變數在遊戲存檔時會一同記錄下來,變數的數值會儲存在data0.kdt 等記錄檔裡,所以主要儲存一些關於遊戲進度的數值如好感值等,由於是儲存在存檔的檔案中,遊戲變數在不同的記錄檔可以有不同的數值。

(k ゚∀゚)<系統變數不同於遊戲變數,就算不存檔也記錄下來,適合於一些系統上的設定值,例如文字顯示速度,或者是設定CG圖和BGM是否在鑑賞模式裡顯示出來,都會用到系統變數記錄下來。系統變數的數值會記錄在datasu.ksd 裡。

即是說,平時所謂的100%記錄檔就是這個datasu.ksd檔案?>( ゚ω゚ s)

(k ゚∀゚)<是的,一般這些設定值都是儲存在這檔案裡。

(k ゚∀゚)<而暫時變數則是只會在遊戲裡暫存起來,不會儲存到任何檔案裡,當結束遊戲時變數內的數值就會消失,這種變數由於不會記錄下來,一般只用在運算過程時,把數值暫時儲存下來。

那麼若果我想儲存數值,我應該選擇遊戲變數還是系統變數?>( ゚ω゚ s)

(k ゚∀゚)<最簡單的分辨方法是你的變數是用在遊戲本身還是系統設定,雖然可能有例外,不過用這方法大致上也可以正確地決定到用哪一種變數。

(k ゚∀゚)<不過這三種變數只適用於KAG裡,TJS 的變數好像沒有這種概念。

(k ゚∀゚)<今次就介紹到這裡,下次再見。

6 則留言:

  1. 您好,我是最近開始碰吉里集裡的新手,
    版主的教學文章對我受益非淺,
    時常都會來這裡查資料,非常感謝版主的教學

    但是今天我在查閱關於變數的資料的時候
    發現此頁部分內容與我在網路上,查閱到的其他資料似乎不符

    是關於此文章,倒數第二行的部分
    「(k ゚∀゚)變數的種類)
    中譯網址http://socdan.web.fc2.com/kag3/doc/contents/index.html

    其中內容提到
    「KAG ( 其實也就是 TJS2 ) 的變數」

    因為我也不懂日文,所以也沒辦法得知道底是不是網友翻譯錯誤
    除此之外,我在研究網路其他範本的程式碼時
    發現在內插TJS宣告變數時也有遊戲變數和系統變數不同
    例如
    @iscript
    f.flag1=1;
    sf.flag2=2;
    @endscript

    因為我也剛好研究到這邊,發現有異議,
    所以提出我所查到的資料來給版主參考看看,
    不好意思打那麼多字,我自己也都看花了眼,
    再次謝謝版主的教學囉

    回覆刪除
    回覆
    1. 哎呀呀
      我的網站被貼上來了呢。。


      這個是官方的說明喔。
      我跟簡體翻譯作者取得授權翻譯成繁體中文!
      不過簡體中文的翻譯是很有名的吉里吉里推廣團隊
      所以應該是不會出錯啦

      刪除
    2. 對了對了
      那個網站我刪掉了
      要看的話到這裡下載:
      http://socdan.web.fc2.com/webs/downloads/kag3doc_TJ_V2102/

      刪除
  2. 抱歉發文格式好像沒弄好

    是關於倒數第二行
    (k ゚∀゚)變數的種類
    裡面的內容
    希望這樣打您看的懂...

    回覆刪除
  3. 呃...
    又被洗掉了= =
    我...我無言了orz

    我只是想說在"變數的使用"的裡面的"變數的種類"
    那段文章

    很抱歉一直洗版orz
    這次再失敗就不發啦...

    回覆刪除
  4. 首先多謝您的支持,
    這個中譯並沒有翻譯錯誤,
    因為KAG的變數是基於TJS寫出來的,
    我們的確可以在TJS內KAG的變數,
    但這不代表TJS的變數有遊戲變數、系統變數和暫時變數等類型,
    KAG是透過system資料夾裡的tjs檔案來定義出來,
    若果我想用TJS寫一個遊戲,
    而且完全捨棄KAG原本寫好的系統,
    也就是不要system資料夾裡的檔案,
    那麼由於KAG還未被定義,
    我就不能使用KAG的變數。

    再說簡單一點,
    KAG的變數類型完全是由TJS定義出來,
    TJS本身沒有這三個變數類型。
    而KAG和TJS裡變數的概念是有點分別,
    不過兩者可存放的資料型態倒是一模一樣。

    補充:
    若果再解釋深入一點,
    f、sf和tf這三個其實是三個TJS的變數,
    資料型態是物件(Object),
    所以它們嚴格來說不是變數的類型,
    不過平時也不需要太在意這東西。

    回覆刪除