小屋創作

日誌2017-06-17 04:55

STG的機制:螢幕坐標定位與世界坐標定位

作者:Shark

介紹地形射擊遊戲的一個機制,最近在寫美術人員訓練教材順便寫這篇。

玩Cyber Sprite的時候有沒有發現一個現象,像下圖敵人是往下發射子彈,但仔細比對一下,子彈似乎不是直線往下。


還有高速移動打boss的時候,子彈與主角、boss同步移動,但命中後的火花會高速後退。


這是因為不同物件定位方式不同,筆者也是開始做地形STG才注意到定位方式大有學問。
同時發在官網



地形STG裡依不同物件有兩種定位方式:
第一種:螢幕坐標定位


第二種:世界坐標定位


Cyber Sprite裡面,主角和大部分飛行敵人是螢幕坐標定位。


固定砲台和地上走的敵人則是世界坐標定位。


有些敵人會改變,剛出現還沒動時是世界坐標,開始移動追主角之後變成螢幕坐標。


至於子彈,筆者做物件移動的時候有參考一些捲軸射擊遊戲,發現子彈大多用螢幕坐標定位,即使是地面砲台發射的子彈也一樣。STG之外也有研究ACT看有什麼差異。

實際測試過的感覺是,如果畫面捲動時主角會同時動,則子彈要用螢幕坐標定位。
如果畫面捲動時主角不會跟著動,如ACT的強制捲動關卡,那子彈要用世界坐標定位。
和主角用相同方式玩家比較好估計子彈路徑,比較不會讓人覺得「好難預測,怎麼練習都躲不掉,這遊戲陰人!」。

開頭第一張圖,子彈是螢幕坐標,以地形為基準的話子彈會隨著地形向左捲動右偏,以螢幕為基準來看才是直線向下。
第二張圖,火花會隨捲動後退是因為它是世界坐標,這樣可以做出高速移動的感覺。

各位可以找一些有地形STG、ACT來看看,觀察裡面的物件是用哪種方式定位。



有兩種定位方式是地形STG才要考慮的問題,無地形就不用考慮那麼多,全部用螢幕坐標定位。
有地形和無地形製作方式差很多,玩起來感覺也不一樣,有些人誤以為Cyber Sprite是彈幕遊戲,或是把所有STG都叫做彈幕,這是很大的誤解。
(筆者做過射擊遊戲之後體會到為什麼彈幕會流行,無地形容易製作是原因之一,多了地形製作難度就高很多)

至於實作方法,Cyber Sprite的物件位置都是用世界坐標計算,繪製時再用坐標轉換算出畫面上的位置,螢幕坐標定位的物體也一樣。
想像遊戲畫面也是一個物體在地圖裡移動


每個frame一開始先求出畫面在地圖裡的位置(screenX,screenY),以及這個frame內的移動距離(scrollVX,scrollVY)
然後每個物體照自己的飛行、走動特性算出移動距離(vx,vy)

世界坐標定位的物體,把位置加上移動距離即可。
x+=vx;
y+=vy;

螢幕坐標定位則還要加上畫面移動距離,讓物體隨畫面移動。
x+= vx+scrollVX;
y+= vy+scrollVY;

有個地方比較特別,Cyber Sprite有個地方橫向是強制捲動,縱向是自由捲動,可以在約兩個畫面的範圍裡上下移動。


此時主角的移動是橫向受捲動影響,縱向由玩家控制,有縱向捲動但scrollVY設為0,只有scrollVX會影響子彈。

5

1

LINE 分享

相關創作

[達人專欄] 【Godot】我做的平台小遊戲「Small Alien, Big Planet」

[達人專欄] 【Godot】「Small Alien, Big Planet」開發紀錄

【 殤之谷 | Sorrow Valley 】遊戲開發進度 Vol.7 - 進度大大大大噴發!

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】