【RM教學 2.0】 一起來寫拍照插件

最近比較多文章,都是因應上架後遇到許多玩家的問題而產生的一些分享。
這篇也不例外,因應RMMV在steam中開啟後,無法直接使用截圖功能因此做了一個熱鍵截圖功能



功能簡介
新增熱鍵P可以直接擷取遊戲畫面,並且自動存檔

適用對象
– RMMV + 輸出單機版的作者
– 遊戲丟到Steam 發現無法用Steam功能拍照,又希望玩家可以拍照的作者

開始

STEP 1:
第一步我們先來增加按下P鍵時的對應功能,
這邊利用關鍵字 onKeyDown 可以搜尋到SceneManager.onKeyDown這個功能
按照慣例,我們先把整段複製下來
接著利用 https://keycode.info/ 網站找出我們要使用的熱鍵,這個範例中我們用”P”來作為拍照熱鍵。

  • 若不了解switch case 用途的夥伴,請上網爬個文章,印象會更深刻w
    RMMV

STEP 2:
接著,我們加入一個用來拍照的方法且在按下keycode = 80時 呼叫
暫時命名 playerSnapShop()

RMMV

STEP 3:
接著就是實際拍照要做什麼事情了。
在這邊我們使用的概念是利用SceneManager先暫存目前畫面
所以我們新增2個function,一個用來暫存,一個用來取用並且清除

RMMV教學

STEP 4:
最後,我們來撰寫將暫存的畫面存成圖片的功能

前半段,我們先將會用到的功能初始化,並取得遊戲目前的路徑
RMMV
.

接著,設定好我們想儲存的路徑,這邊使用 screenshot 作為範例
把最終路徑塞到 last_path 中,這邊看看圖片中的說明會比較清楚

RMMV

再來,不要睡著。我們快到最後階段了:)
在圖片命名的部分,為了方便我們使用”現在時間.png” 來命名,使用的是unix time
並且將檔案轉換成儲存圖片的格式

RMMV
.

最後,我們利用最前面的 fs.existsSync(last_path) 檢查有沒有這個資料夾路徑
沒有的話就mkdirSync來自動建立
.
RMMV
.

一切就緒之後,利用fs.writeFileSync 將圖片存到指定的路徑
RMMV

最後一行的 alert(…) 則是每當玩家按下拍照按鈕時,就會跳出一個框告訴玩家圖片儲存的路徑
方便玩家進行查找,不想使用的話也可以註解掉:)

最後提供插件全圖
RMMV
.

收工!下課!

Q:為什麼不直接提供插件
A:此系列教學比較偏向一起動手做,根據粽子自學的經驗。程式這種東西還是要自己多動手寫,即使是照抄你也會慢慢熟悉,慢慢了解。因此想要學習寫插件的小夥伴自己動手寫一遍吧!

眼中的世界EarlyAccess 版本目前已支援此功能



發表迴響