【RM教學 2.0】RMMV – 腳本試做 – 從Title開始

這一篇開始我們將作者們開始實作一些簡單的腳本,並且會一邊教學一邊複習前面幾篇學到的內容


第一篇的腳本教學我們將從修改遊戲開頭畫面開始,讓作者了解Winodw 的特性跟修改方式

首先我們先進入專案目錄/js/plugins/ 底下新增一個檔案, 檔名不重要,但是附檔名記得調整為 .js
接著請在RM中使用F10 把它設定為 ON 的狀態,這樣這個插件才會生效。

# js/plugins/ 目錄
RM腳本教學

# 新增一個副檔名為 js 的檔案 範例為 Chimaki_TitleChange.js
RM腳本教學

修改開頭選項的位置

先來複習一個觀念,遊戲中的畫面都是包含在Scene底下,所以我們要修改畫面上的東西時,可以先找出我們所需要的Scene

#腳本架構概念
RM腳本教學

按照上面所述,我們要先找到我們所需要的Scene,開頭畫面的Scene在MV當中被命名為Scene_Title
在rpg_scenes.js 裡面我們搜尋之後可以看到下面一長串
RM腳本教學

先不要被他嚇到,改腳本有個重要觀念,我們是針對原本的程式碼進行「擴充」或是「覆寫」來調整我們要的功能。所以只需要找到我們需要的區塊就可以了。下面將拆開幾個功能進行修改測試。

嘗試修改遊戲開頭選單的位置

這部份我們要修改開頭選單的位置,所以我們第一步要先找到開頭選單

在Scene_Title 底下我們可以看到 createCommandWindow,這邊就是執行把開頭選項的視窗加入 Scene_Title 底下。
RM腳本教學

# 用中文寫程式,大概就會變成這樣
RM腳本教學

在這個階段,程式已經將開頭指令視窗加入了Scene_Title 裡面,這樣我們可以在Scene_Title底下隨意控制指令視窗了。

開始調整x, y 座標

在上面的圖片中,我們可以看到 指令視窗被定義成 this._commandWindow並且塞到了Scene_Title 底下 , 所以在 Scene_Title底下要改變 指令視窗的設定的話就要對 this._commandWindow 進行控制。

這一個區塊我們要修改的是指令視窗的座標,讓我們先把Scene_Title.prototype.start 整個區塊複製下來貼到我們新增的插件裡面

問 : 為什麼要複製 Scene_Title.prototype.start
答 : Scene_Title.prototype.start 是在整個Scene準備好之後,會呼叫的 function ,我們可以在此做調整。也不會動到Scene_Title 原本的設定。

問 : 為什麼要複製 到我自己的插件裡面?
答 : js有一個特性,如果後面的function 與前面的同名時,後面的會覆蓋前面的function,而plugins 底下的js 都是在 所有核心程式碼載數結束之後,才進行載入

問 : 為什麼不用alias
答 : 後續會介紹到,因為很多人看教學都是卡在一堆看不懂的東西硬學習,粽子這邊會在有必要或是比較適合的時機來做一些介紹。

複製之後,你的插件應該會長這樣
RM腳本教學

截至目前都是原生的程式碼,接下來我們要開始調整座標。
首先我們先在start 底下呼叫一個function , this.changeWindowPos()
並且實作這個function , 因為changeWindowPos 是我們自己新增的,如果不實作,程式碼會找不到changeWindowPos,也會因此噴錯誤

#寫完之後會像下圖一樣
RM腳本教學

這一個區段的目的是改變開頭指令的座標,前面也提到在Scene_Title底下要控制指令視窗需要使用
this._commandWindow來控制,那我們就先來試試看。把視窗改到座標 x = 0, y = 0 的位置
改完之後,你的程式碼應該會長的像下圖一樣

我們來看看改完之後的結果。

RM腳本教學

那麼,this._commandWindow.x , this._commandWindow.y 又分別代表什麼意思?

一個物件底下會有所謂的屬性,而this._commandWindow 這個物件的x, y 又分別代表他的座標,所以我們要修改屬性只需要 this._commandWindow.x = n 就可以修改他的座標了。

Tip : 自己試試看,將指令視窗改到你喜歡的位置。

如果我要改變視窗的寬度呢?
這時只要改變window 的 width 屬性就可以了,改完之後腳本會如下圖
RM腳本教學

問: 那window 有這麼多屬性,我怎麼知道什麼時候要改什麼東西呢?
答: 這時候我們可以再Rpg Maker編輯器的畫面按下F1 , 此會跳出幫助文檔

F1對岸漢化文檔

拉到最下方的JS,再點擊Window,可以看到方法與屬性

RM腳本教學

這邊的屬性就是我們可以直接修改的內容
EX:
this._commandWindow.opacity = 100;
this._commandWindow.y = 10;

Tip : 先試玩「屬性」的內容,方法的部份我們後續會再提到

每個屬性點下去之後也會跳到對應的說明與屬性的型別
只要設置對應得的屬性就可以修改window的內容了

EX:
這張圖片顯示Number
所以在修改 this._commandWindow.opacity = ? 的時候,記得要帶入的為數字才不會讓程式爆炸
RM腳本教學

回家作業

今天這節簡單告訴大家如何去改變titile 的指令視窗,但還需要實際練習才能慢慢了解MV的程式架構,希望大家多寫多練習。

作業內容:
使用今天寫的腳本,在腳本中修改window 的屬性(F1裡面可以查詢),並在遊戲中分別看看他代表著什麼效果

One thought on “【RM教學 2.0】RMMV – 腳本試做 – 從Title開始

發表迴響