메뉴 건너뛰기

cuiwenchu

취미생활
2018.02.05 04:24

gamesalad magnitude

chu
조회 수 3675 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
14039 중국 회사 온라인 사이트 경영허가증 ICP证 검색 chu 2014.10.13 22383
14038 중국 회사 법인 만든후 바로 해야할 업무 - 새무관련 chu 2014.09.24 19086
14037 기타 한글이름 입력후 영어이름 지어주기 chu 2014.12.22 22298
14036 중국 한국인 중국에서 법인 설립 chu 2014.09.01 21862
14035 중국 한국인 중국 취직 서류 준비 chu 2014.12.12 19586
14034 중국 한국마스크팩 중국 위생허가 받기 chu 2014.12.22 21715
14033 컴퓨터 프로그래밍 배우기 chu 2014.11.05 34775
14032 컴퓨터 포토샵 이미지따기 섬세한 머리카락 편 chu 2016.05.06 17498
14031 직장 파워 포인트 디자이너 부럽지 않다 chu 2014.11.05 22126
14030 중국 텐센트 腾讯旗下股票-腾讯相关股票 chu 2015.11.25 17792
14029 기타 카메라 흔들림 보정 기능, 원리 알면 똑똑하게 쓸 수 있다 chu 2014.12.09 24252
14028 직장 찾을수록 보이는 직장생활 노하우 file chu 2014.12.18 21929
14027 직장 직장인을 위한 문서 만들기 기법 - 4 chu 2014.11.05 21563
14026 기타 지젝의 질문 그리고 한국 chu 2014.10.22 21833
14025 중국 중국관련 내용 알아두기 chu 2015.03.21 19630
14024 중국 조선족 동호회 모음 chu 2014.08.20 19538
14023 컴퓨터 제어판에 삭세 할것 정리 chu 2014.09.16 26596
14022 기타 인문학과 자연과학이 만나기 chu 2014.10.22 26777
14021 중국 은행카드 개설주소 찾기 chu 2015.10.10 16379
14020 서버 웹진형, 갤러리형, 모바일(목록)형 공통 설정 chu 2015.01.15 23013
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 702 Next
/ 702