[问题] 关于2D动作游戏的疑问

楼主: allenwang15 (艾伦王十五)   2014-03-18 09:36:00
大家好
小弟在版上发过几次文问过一些问题
Flash也用了好一段时间,不过发现自己程式还是写得很没架构
版上的大大们讨论最新的技术跟引擎都很热络,虽然我都看不太懂0.0
只能说深感佩服
题外话完了,想请教一些问题
我想做一个2D卷轴动作游戏
不过尤其是攻击的部分,大家的碰撞都是怎么写的
我的做法是,在攻击动画中挥刀的动作,会放入一个透明的MovieClip
来当作碰撞判定的物件,然后敌人都会被存在一个Sprite中
游戏会不断用判断透明的碰撞物件是不是跟Sprite中的其中一怪碰撞
但是不知道是不是这样做法不好,有时候明明砍到怪物却没事
有时候又砍得到,难道是挥刀时间太短(透明碰撞物件出现两个影格左右),
所以造成判断来不及吗? 但感觉不太可能......
另外,大家在做这类游戏时,判定都是怎么写得呢?
我的意思是想问,比如说主角、怪物、武器、魔法、队友这些物件
在场上碰撞来碰撞去,还是要用循环处理所有物件吗?
每一个子弹都用循环去侦测是否跟场上的所有物件有没有碰撞这样?
还有,让我最纳闷的就是,如果游戏地图很大,通常都会将地图分块
然后角色靠近再动态产生,这样比较不耗效能,但是如果场地上有怪物
主角离开后,场地消失,怪物就会摔下去。这问题一直都蛮困扰我的0.0
不知道这问题大家都是如何解决的。
问了超多问题,烦请高手帮忙解答了
而且我自己这样一问,感觉自己应该多念念游戏架构之类的书0.0
然后我觉得我想来学个Box2D,根本没玩过任何引擎...
楼主: allenwang15 (艾伦王十五)   2014-03-18 10:22:00
附上swf档案让大家参考 http://0rz.tw/oJ9qk是说把碰撞物件存在的时间拉长似乎就可以了
作者: KawasumiMai (さあ、死ぬがいい)   2014-03-18 12:00:00
1.可能看你要用哪个视点去处理?例如子弹视点跟怪物视点?前者是子弹判定有没有撞到怪物,后者是怪物判定有没有被子弹打到。2.以场景来说篓空的物件可以判定穿透,所以可以同图层先判定是否有碰撞再看碰撞哪一个子物件?例如先判定是否打到怪物layer再看打到哪个怪物减少判定频繁度3.场景既然使用动态生成,那么场景不存在的区域是否也该让怪物的重力反应先停掉呢?4.承3,既然这样,子弹判定的怪物应该只有萤幕周围一段距离内的怪物吧?不用判定所有怪物才对
楼主: allenwang15 (艾伦王十五)   2014-03-18 12:19:00
感谢K大热心回应
作者: KawasumiMai (さあ、死ぬがいい)   2014-03-18 13:50:00
但是怪物既然也是使用重力+碰撞去决定贴地,那么就不可能场景移除还能悬空,萤幕外一段距离后怪物应该没必要维持AI?这点就算是考虑重生也是差不多的想法吧?你会注意到很多游戏只要怪物只要在萤幕内外进进出出就会一直以同样的位置和初始动作Reset
作者: iverson007 (Hu Chin Hsiang)   2014-03-30 02:13:00
2D+横向卷轴+物理=Citrus Engine(Starling Framework)

Links booklink

Contact Us: admin [ a t ] ucptt.com