메뉴 건너뛰기

cuiwenchu

취미생활
2018.02.05 04:24

gamesalad magnitude

chu
조회 수 6117 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
130 취미생활 게임기획자 과도한 문서필요 하지 않을때 chu 2018.04.08 4607
129 취미생활 게임셀러드 속도 조절 레이싱게임 만들기. chu 2018.03.26 4719
128 컴퓨터 CPU비교 chu 2018.03.22 4472
127 취미생활 上传自己的APP应该怎么做?有哪些市场是可以支持 chu 2018.03.02 5188
» 취미생활 gamesalad magnitude chu 2018.02.05 6117
125 취미생활 감기 걸렸을때 홍삼 괜찮을가요? chu 2017.12.26 8218
124 직장 고독이 주는 삶의 지혜 10가지 chu 2017.11.21 8947
123 취미생활 崔军的故事 chu 2017.11.08 10476
122 직장 맞춤형 정장 직장용정장 chu 2017.10.31 10765
121 취미생활 服装设计软件 chu 2017.10.30 11532
120 취미생활 小时候故事 01 chu 2017.10.20 10629
119 중국 解析电动汽车电池:磷酸铁锂电池与三元锂电池 chu 2017.09.21 10288
118 컴퓨터 不懂编程怕什么,你也可以做游戏! chu 2017.07.18 16220
117 취미생활 文出传6 高考 chu 2017.06.08 13232
116 취미생활 文出传5 阿哲的紧身衣 chu 2017.04.28 14503
115 취미생활 文出传4 打群架 chu 2017.04.28 14246
114 취미생활 文出传3 -红莲搬家小金来帮忙 chu 2017.04.20 14966
113 취미생활 文出传2 chu 2017.04.10 15359
112 직장 Web 기획 & Web PM chu 2017.03.24 14825
111 모바일 如何在unity中制作塔防游戏 —— 完结篇 10 chu 2017.02.13 14661
Board Pagination Prev 1 ... 699 700 701 702 703 704 705 706 707 708 ... 710 Next
/ 710