創作內容

5 GP

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

作者:Shark│2017-06-17 04:55:44│贊助:18│人氣:124
介紹地形射擊遊戲的一個機制,最近在寫美術人員訓練教材順便寫這篇。

玩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會影響子彈。
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3612132
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:Cyber Sprite|遊戲製作|射擊遊戲|STG

留言共 1 篇留言

愛天使亞夜
無障礙物的遊戲不一定不吃世界座標,
例如Cave或Taito的縱捲軸遊戲,
雖然沒有障礙物但非飛行的敵人還是吃世界座標的。
或者另一個說法,
他們也許不吃世界座標,
但眼出上為了營造坦克在地面走的感覺你不得不讓物件跟背景同步。

至於彈幕的問題,
若刻意製造玩家無法預測的彈幕,
恐怕只會讓玩家摔手把而造成反效果了吧?

06-18 22:08

Shark
寫完後也想到有無地形但有地面物體的遊戲。
雖然沒看到程式碼很難說,不過我想這類遊戲位置計算以螢幕坐標為主,地面物體的移動用捲動速率修正會比較好做。

彈幕的話,彈幕的製作方法跟地形STG是另一套,由於我現在還沒有要做彈幕所以先不研究。06-19 20:32
我要留言提醒:您尚未登入,請先登入再留言

5喜歡★shark0r 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:[繪]夏日景色... 後一篇:畫塗鴉的和清除塗鴉的...

訂閱

作品資料夾

ccwwatson大家
小屋新增原創短文,懇請大家支持、指教!看更多我要大聲說昨天21:41


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