메뉴 건너뛰기

cuiwenchu

취미생활
2018.02.05 04:24

gamesalad magnitude

chu
조회 수 6115 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

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
번호 분류 제목 글쓴이 날짜 조회 수
14190 컴퓨터 CrossCertWeb v2.0 삭제 chu 2014.09.16 60603
14189 기타 Miss&Lady 面膜 file chu 2015.01.09 40759
14188 컴퓨터 프로그래밍 배우기 chu 2014.11.05 39025
14187 서버 무료 vpn사용법 file chu 2014.11.07 38485
14186 컴퓨터 맥북을 사면 꼭 설치 해야할 몇가지 MAC APP[출처 맥 쓰는 사람들 - 네이버 카페] chu 2015.01.04 38231
14185 컴퓨터 몬길 andy설치 file chu 2014.12.26 38216
14184 컴퓨터 몬길 andy설치후 자동 모험돌기. file chu 2014.12.26 36013
14183 컴퓨터 swift 강좌 chu 2015.01.19 33367
14182 모바일 쇼미 훙미note3 한글화 하기 file chu 2016.03.09 33352
14181 서버 怎么在win7|windows7系统下设置vpn file chu 2014.08.06 31664
14180 컴퓨터 여자들의 소셜 게임 분석 chu 2014.11.05 31107
14179 컴퓨터 멍때리는 뇌 휴식이 사실은 최상의 상태로 유지하기 위한 필수적 뇌 충전이다 chu 2014.12.26 30481
14178 컴퓨터 2015년부터는 평범화 된 IoT chu 2014.10.28 30481
14177 컴퓨터 제어판에 삭세 할것 정리 chu 2014.09.16 30414
14176 Is It Possible To Back Up Itunes To ICloud? BPTHannah3010338872 2018.05.28 30282
14175 기타 인문학과 자연과학이 만나기 chu 2014.10.22 30017
14174 기타 茶树精油功效用法 chu 2014.10.20 29536
14173 모바일 iphone으로 영화 촬영 chu 2015.02.02 28952
14172 기타 나루토 인법 총 모음 file chu 2016.08.23 28486
14171 컴퓨터 在PC上安装苹果-俗称黑苹果 chu 2014.12.30 28358
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 710 Next
/ 710