作者allenwang15 (艾倫王十五)
看板Flash
標題[問題] 關於2D動作遊戲的疑問
時間Tue Mar 18 09:36:00 2014
大家好
小弟在版上發過幾次文問過一些問題
Flash也用了好一段時間,不過發現自己程式還是寫得很沒架構
版上的大大們討論最新的技術跟引擎都很熱絡,雖然我都看不太懂0.0
只能說深感佩服
題外話完了,想請教一些問題
我想做一個2D卷軸動作遊戲
不過尤其是攻擊的部分,大家的碰撞都是怎麼寫的
我的做法是,在攻擊動畫中揮刀的動作,會放入一個透明的MovieClip
來當作碰撞判定的物件,然後敵人都會被存在一個Sprite中
遊戲會不斷用判斷透明的碰撞物件是不是跟Sprite中的其中一怪碰撞
但是不知道是不是這樣做法不好,有時候明明砍到怪物卻沒事
有時候又砍得到,難道是揮刀時間太短(透明碰撞物件出現兩個影格左右),
所以造成判斷來不及嗎? 但感覺不太可能......
另外,大家在做這類遊戲時,判定都是怎麼寫得呢?
我的意思是想問,比如說主角、怪物、武器、魔法、隊友這些物件
在場上碰撞來碰撞去,還是要用迴圈處理所有物件嗎?
每一個子彈都用迴圈去偵測是否跟場上的所有物件有沒有碰撞這樣?
還有,讓我最納悶的就是,如果遊戲地圖很大,通常都會將地圖分塊
然後角色靠近再動態產生,這樣比較不耗效能,但是如果場地上有怪物
主角離開後,場地消失,怪物就會摔下去。這問題一直都蠻困擾我的0.0
不知道這問題大家都是如何解決的。
問了超多問題,煩請高手幫忙解答了
而且我自己這樣一問,感覺自己應該多念念遊戲架構之類的書0.0
然後我覺得我想來學個Box2D,根本沒玩過任何引擎...
--
Allen Wang's Blog
http://allenwang15.pixnet.net/blog
個人部落格 裡面主要放自己的短篇漫畫相關作品
有興趣可以來看看
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.24.28.126
2F:→ allenwang15:是說把碰撞物件存在的時間拉長似乎就可以了 03/18 10:49
3F:推 KawasumiMai:1.可能看你要用哪個視點去處理?例如子彈視點跟怪物 03/18 12:00
4F:→ KawasumiMai:視點?前者是子彈判定有沒有撞到怪物,後者是怪物判定 03/18 12:00
5F:→ KawasumiMai:有沒有被子彈打到。 03/18 12:01
6F:→ KawasumiMai:2.以場景來說簍空的物件可以判定穿透,所以可以同圖層 03/18 12:01
7F:→ KawasumiMai:先判定是否有碰撞再看碰撞哪一個子物件? 03/18 12:02
8F:→ KawasumiMai:例如先判定是否打到怪物layer再看打到哪個怪物減少判 03/18 12:02
9F:→ KawasumiMai:定頻繁度 03/18 12:02
10F:→ KawasumiMai:3.場景既然使用動態生成,那麼場景不存在的區域是否也 03/18 12:02
11F:→ KawasumiMai:該讓怪物的重力反應先停掉呢? 03/18 12:03
12F:→ KawasumiMai:4.承3,既然這樣,子彈判定的怪物應該只有螢幕周圍一 03/18 12:03
13F:→ KawasumiMai:段距離內的怪物吧?不用判定所有怪物才對 03/18 12:03
14F:→ allenwang15:感謝K大熱心回應 03/18 12:19
1的話,我知道原理,只是想知道大家普遍用哪種,不過我想也是看遊戲內容
3,我想說讓怪物仍然在場上做自己的事情,所以才不停掉他的動作
※ 編輯: allenwang15 來自: 163.24.28.126 (03/18 12:39)
15F:推 KawasumiMai:但是怪物既然也是使用重力+碰撞去決定貼地,那麼就不 03/18 13:50
16F:→ KawasumiMai:可能場景移除還能懸空,螢幕外一段距離後怪物應該沒必 03/18 13:51
17F:→ KawasumiMai:要維持AI?這點就算是考慮重生也是差不多的想法吧? 03/18 13:51
18F:→ KawasumiMai:你會注意到很多遊戲只要怪物只要在螢幕內外進進出出 03/18 13:52
19F:→ KawasumiMai:就會一直以同樣的位置和初始動作Reset 03/18 13:52
20F:推 iverson007:2D+橫向卷軸+物理=Citrus Engine(Starling Framework) 03/30 02:13