Skip to content

cuiwenchu

취미생활
2018.02.05 04:24

gamesalad magnitude

chu
查看 8291 推荐 0 ?? 0
?

Shortcut

Prev上一页 文章

Next下一页 文章

Larger Font Smaller Font 向上 向下 Go comment 打印
?

Shortcut

Prev上一页 文章

Next下一页 文章

Larger Font Smaller Font 向上 向下 Go comment 打印

2014年8月22日 星期五

gamesalad magnitude(向量絕對值)的用法


先說在前面,
本人對數學其實並不十分有興趣,
也並非技術背景出身的人員,
以下的內容,
對遊戲製作沒有興趣的人,看起來應該也會覺得很沉悶吧@@


這個magnitude(向量絕對值)一詞,
因為之前沒看過,是一個不懂的新字,
所以光看就覺得很威的樣子,
直到看到國外gs開發者的用法,
才知道是怎麼一回事,
封面圖是用google找到的一張能簡單說明的示意圖,
但是如果我沒看過以及用gs實做過,
我也不會有興趣去瞭解這不知道能幹嘛用只是看起來好像很厲害的專有名詞^^"

用上面的圖說解示,
就是由某一點(頭)到某一點(尾)間的距離取絕對值,
主要是在向量的世界裡取得距離用的。
(3D的世界裡我想應該也是一樣的原理)

那在遊戲製作中,
在gamesalad這套工具裡能用來做什麼呢?

原來可以拿來改變碰撞範圍的大小,
在gs中,
任何物件的hitbox(碰撞範圍)預設都是本身拖進場景中的方塊的大小,
gs號稱不需要"寫"程式?
但是如果你只用內建不更動程式的方式的預設工具去製作,
是沒辦法做到改變hitbox(碰撞範圍)的,
視覺化編輯器中的actor看到的方塊就一定得是碰撞範圍。

如果要做一些進階的變化,
我這邊立刻聯想到的例子是彈幕射擊遊戲,
比如cave社的怒首領蜂系列,
飛機的可視圖像內含極小的自身碰撞判定,
所以可以做出即使被子彈擊中機身圖像,
除非被打中中心點那極小的hitbox(碰撞範圍),否則不會被擊落的效果,
就一定要使用magnitude(向量絕對值)去自訂hitbox(碰撞範圍)。


用實際在gs中製作的情形來說明,
跟怒首領鋒系列相反,
為了方便說明,使用的是超過本身圖像之外的碰撞判定來當圖示,
上圖中觸碰左邊方塊的中心A點時,
右邊的文字方塊顯示用magnitude得出的數值是大約1.3。
(如果能剛好碰到正中心的話會是0,
但理論上來說人的手指或滑鼠是不可能剛好碰到正中心點的)


上圖中觸碰左邊方塊的B點的虛線任何一處時,
右邊的文字方塊顯示用magnitude得出的數值是大約60。
也就是說,
A點(方塊的中心點)到B點黃色虛線的任一處的magnitude(向量絕對值)是60。

在gs中要取得上圖例子中文字方塊顯示的數值,
只需要用A點的座標減掉B點的座標就可以了。


magnitude裡要輸入兩個值,分別是X跟Y,
像這樣

===========
magnitude(X,Y)
===========

所以可以先設一個real性質的全域變數,比如叫做magnitude,
再把magnitude計算後的結果紀錄起來,

magnitude = magnitude( self.Position.X - game.Mouse.Position.X , self.Position.Y - game.Mouse.Position.Y )

這樣就可以再用任何數字去決定hitbox(碰撞範圍),
如果方塊的面積是60x60,
那設定magnitude < 70才觸發碰撞條件的話,
就會在方塊周圍產生像圖示的黃色虛線一樣,
多出看不見的10(70-60=10)的距離範圍也會被當作觸發碰撞判定,
如果想要設定小於方塊本身的hitbox(碰撞範圍),
像怒首領鋒那種極小hitbox(碰撞範圍)的話,
就只要設小於本身方塊的數值就可以了,
比如magnitude < 20才觸發碰撞條件,
就算碰觸到原本有顯示的方塊區也不會觸發了。

這個magnitude(向量絕對值)我想很多開發工具應該都有類似的用法,
比如說像以前flash的hitArea就有點接近,
而在unity要設定碰撞範圍應該是更容易才是,
只是換一個名詞變成magnitude後,
因為是平常比較少用的生硬英文,
就看起來變成很厲害,
其實運作原理並沒有字面上看到的那麼難理解,
難怪網路上流傳著一個笑話...

要學好程式最先要學哪一種語言比較好?




List of Articles
编号 分类 标题 作者 日期 查看
132 컴퓨터 2015년부터는 평범화 된 IoT chu 2014.10.28 33032
131 직장 30대 남자 시계 순위 chu 2016.07.26 23000
130 컴퓨터 360自制系统教程1:制作GOD文件包和导入教程 chu 2014.10.08 26527
129 중국 BitCoin같은 가상화페 거래 시스템 중국에서 구축 chu 2015.01.02 23547
128 서버 caihongqiao vpn chu 2015.01.30 28231
127 모바일 cocoapods 安装 chu 2015.10.08 21150
126 컴퓨터 cocos2d 맥북에 깔기 chu 2015.07.24 26500
125 컴퓨터 CPU비교 chu 2018.03.22 6390
124 컴퓨터 CrossCertWeb v2.0 삭제 chu 2014.09.16 71827
123 컴퓨터 cxcel 총합 평균 구하기 file chu 2016.05.17 29175
122 컴퓨터 dota 全选就是想选很多英雄 chu 2015.12.13 24009
121 컴퓨터 foxmail 메일세잉 file chu 2016.07.01 22349
» 취미생활 gamesalad magnitude chu 2018.02.05 8291
119 모바일 iphone에 메일 세팅 file chu 2015.03.09 23202
118 모바일 iphone으로 영화 촬영 chu 2015.02.02 31648
117 컴퓨터 iT 기획자가 알아야 할 용어 chu 2016.02.22 23647
116 취미생활 M1911 chu 2016.09.14 18057
115 취미생활 M1935 chu 2016.09.14 17737
114 취미생활 M9 chu 2016.09.14 17856
113 기타 MINI로 보는 신기한 세상- 안경과 자동차 chu 2015.04.15 30974
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7