嘎姆遊刊是嘎姆擂台(gamelet.com)提供給玩家們發表論文、分享心得的園地。歡迎玩家們自由投稿,在嗄姆的歷史上留下自己的足跡。

2017年9月28日 星期四

醬汁の變數之旅—基礎篇(下)


哈囉大家好,歡迎來到醬汁の變數之旅~~

在這裡,希望能讓各位同人作家們能夠清楚地了解到變數的基礎概念。也希望有野心的新手作家們,可以在這篇文章找到一片新天地~

廢話不多說,請大家細心品嘗!

前言

在這篇文章中,將會介紹人物變數、自訂變數、地圖變數以及數學式。這篇也很榮幸一起邀請ゞ火魂、共同眷寫!


一、人物變數與自訂變數

人物變數:

人物變數有點類似”人物代碼”,大家可以想成該變數的數值就是人物代碼。


然而,有個滿特殊的地方就是它分成”任務/(變數代碼)”還有”事件/(變數代碼),這個有牽扯到”全域變數”以及”局域變數(或稱區域變數)"。

簡單來說,事件/(變數)只會在該事件內存在,別的事件是無法找到那個變數的。而任務/(變數)則是整個任務都能找到。


自訂變數:

可以在”動作-人物屬性狀態”中的”自訂變數”中設定(如下圖)。

設定範圍在整數、字串、數學式。

比起任務變數,自訂變數只會針對人物設定,在一些設定上可以減少許多bug,但是因為設定上以及可設定範圍有點少,所以使用率偏低。

補充:在先前,自訂變數無法使用%{}%做輸出,但是在先前的更新中,已經可以使用%E{(人物變數).(自訂變數代碼)}%做輸出的動作了!


(假醬:讀檔RPG的超大福音!!!!)


二、地圖變數

地圖變數也是一個特殊的變數,地圖變數是以”座標位置”儲存的,在設定的時候可以調整座標位置並且做偏移,或者是儲存距離地圖邊界的剩餘格數等,在數學式更新之後也可以利用各種運算來設定地圖變數。

(假醬:關於用數學式放地圖特效可以參考研討中心的”鼠標存取”部分,之後也會有一篇會寫入關於數學式與地圖變數的特殊運用。)


三、數學式

數學式跟計算整數很像,但是因為可以輸入sin().cos()...等各種函數協助運算,也可以輸入{人物變數.location.x}...等系統變數進行計算,因此在運用上面是高於計算整數好幾個層次的!

下面會介紹各種在數學式內可以使用的函數以及變數。

函數
三角函數系列-
sin()cos()
tan()cot()
sec()csc()
反三角函數系列-
asin()acos()
atan()acot()
asec()acsc()
atan2(y,x)(小哈:atan2超重要!用來算夾角的利器!)
運算系列-
round()四捨五入
ceil()無條件進位
floor()無條件捨去
sqrt()平方根
ln()對數
log2()以2為底數的對數
log10()以10為底數的對數
abs()絕對值
pow(x,y)計算x的y次方(等於x^y)
mod(x,y)計算x/y後得到的餘數(等於x%y)
角度系列-
deg()弧度轉角度
rad()角度轉弧度
雙參數系列-
rand(x,y)取x,y之間的隨機整數值
max(x,y)比較x,y的大小,並輸出較大值
min(x,y)比較x,y的大小,並輸出較小值

系統變數
圓周率-
{pi}取得圓周率3.14159265358979323846
人物變數開頭-
{(人物變數).location.x}存取人物所在位置的x座標
{(人物變數).location.y}存取人物所在位置的y座標
{(人物變數).(自訂變數)}存取該人物的自訂變數數值
地圖變數開頭-
{(地圖變數).x}存取地圖變數的x座標
{(地圖變數).y}存取地圖變數的y座標
game開頭-
鼠標系列-
{game.mouse.x}存取玩家的滑鼠指標在場上的"x"座標位置(以像素存取)(單人遊戲適用)
{game.mouse.y}存取玩家的滑鼠指標在場上的"y"座標位置(以像素存取)(單人遊戲適用)
{game.screenmouse.x}存取玩家的滑鼠指標在畫面上的"x"座標位置(以像素存取)(單人遊戲適用)
{game.screenmouse.y}存取玩家的滑鼠指標在畫面上的"y"座標位置(以像素存取)(單人遊戲適用)
{game.mouseLoc.x}存取玩家的滑鼠指標在戰場上的”x”座標位置(以座標存取)(單人遊戲適用)
{game.mouseLoc.y}存取玩家的滑鼠指標在戰場上的”y”座標位置(以座標存取)(單人遊戲適用)
(假醬:像素轉換成座標可以用{(數值)/32}做轉換。)
(火魂:由於假醬只會做法不清楚原理,所以就直接教做法囉~)
(註:此方法是假醬從FK大大的文章學到的~)

時間系列-
{game.now}從戰鬥開始經過的秒數
{game.datetime.year}回傳 今年年份
{game.datetime.month}回傳 這個月的月份
{game.datetime.date}回傳 今天幾號
{game.datetime.day}回傳 今天星期幾
{game.datetime.hours}回傳 現在幾時
{game.datetime.minutes}回傳 現在幾分
{game.datetime.seconds}回傳 現在幾秒
{game.datetime.milliseconds}回傳 現在幾毫秒
{game.datetime.time}回傳由1970年至今經過的秒數

以上函數以及變數,是目前光暈公開的全部變數/函數,至於如何使用,只要在"數學式"中打上該變數/函數,並適當調整內容即可。

補充:在%E{}%更新之後可以直接做運算後輸出,在一些地方不必再重新設定變數了!

EX:
原先:C={A}+{B}
輸出:%{C}%

更新後:
輸出:%E{{A}+{B}}%

雖然這樣方便很多,但是還是要視情況選擇使用哪一個才會避免做多餘的設定喔!


這篇的教學大致上到這裡結束,如果有疑問希望大家能在下面留言中提出。

另外,【醬汁の變數之旅】裡面的教學會以基礎以及常用的為主,至於怎麼靈活運用,就只能依靠大家不斷的練習了。

若有想要學習的技術,也歡迎在下面留言提出,之後會以"回復"或者直接放在新文章來解決大家的疑問。

最後,感謝大家耐心地觀看這些教學,期待我們下次再會~

※ 遊刊文章內容不代表嘎姆擂台官方立場 分享:

3 則留言:

好文就是要分享

贊助廣告