nialv7 发表于 2015-6-28 18:09:22

用划格子的方法我能做到4000物体相互碰撞不掉帧。而且也不难写,楼主要不要试试?

不知道怎么做60fps的gif,就不传动画了……

Sonicthedgehog 发表于 2015-6-22 00:29:08

2015-6-22 00:24:43

又是优化算法……遍历次数减少至少一半,双矩形交叉判定算法优化致简……

极限优化了……
230敌人不掉帧。

然而只能达到这样了。

不能再被这个纠缠了……
明天开始写别的系统了……
先写个道具栏啥的吧。

以上

Sonicthedgehog 发表于 2015-6-21 00:47:40

2015-6-21 00:37:29

尝试优化了一下碰撞算法,发现在225只怪的时候只从30帧优化到了40帧,并没有什么卵用。
刚刚开了一下脑洞,觉得刚才想的两个方法应该可行,明天看看能不能改造一下这个算法。
改动方法1
大致思路是不移动的敌人算法照旧,有追击目标或者移动中的敌人改成预计移动方向会不会碰撞,若会则不移动。
改动方法2
大致思路是在遍历上优化,遍历次数从N^2 变成 N^2/2-N/2 。

感觉第二个更好一点吧。明天再试。

为何我最近这么懒……

以上。

森远霖之助 发表于 2015-6-19 12:01:24

前来应援!加油填坑吧LZ

Sonicthedgehog 发表于 2015-6-19 00:59:26

本帖最后由 Sonicthedgehog 于 2015-6-19 01:06 编辑

2015-6-19 00:04:01

今天真是更了好大一部分啊,所以帖子要写长一点。
关于敌人之间碰撞的问题,截止到目前已经写完,而且和目前已经写完的部分(怪产生、消除)契合好了。(和墙体碰撞那块没写好呢)构思到实行再到调试,加上中间划水的时间:下午1点到晚上7.45
这算法,不知道大家会怎么评价。


大致是这样的:
建立一个碰撞偏移缓冲数组vEnemyCollisionBuffer() as PointF←为啥是v开头,因为是Vector2D但是每次写类名太麻烦
每帧清零该数组
每帧重新运算一遍每个敌人(全体遍历,编号i)和每个敌人(全体遍历)之间是否碰撞(使用.NET自带矩形判定)
如果是,就记录碰撞反向的方向的Vector,累加在碰撞缓冲数组的第i个元素里边。
(这样每个敌人就都有了对应的多次碰撞的最终结果,简单来说就是单个敌人在碰撞中被挤向的方向)
然后再在敌人更新、移动的后边,消除的前边加入碰撞缓冲的释放,就可以产生被挤而发生移动的效果。

每帧处理一次这种判定区域(脑子)被挤的算法,虽然费时,不过稳定,对每个个体来说公平。总体也能达成看起来碰撞有效的效果。


敌人不被吸引时的效果。流畅。
http://img4q.duitang.com/uploads/item/201506/19/20150619003844_NMJHR.gif

敌人被吸引时的效果,有小范围抖动的情况。
http://cdnq.duitang.com/uploads/item/201506/19/20150619003917_8h24a.gif



相比于上次聚成一团来说已经好多了。

代码上也做了相关的调整,加了好多东西。
绿色新加的,橙色调整的。

主循环中的处理也相当整齐了


感觉甚好,甚好。

为了写个算法还考虑的宇宙的运行等等中二的问题,一本满足。
不过算法上还是有一个效率的问题,之前在想的时候也意识到了,这个算法要循环两次,第一次循环处理N^2次,第二次循环处理N次,N是怪个数。
结果在实际测试中发现225只怪就会导致卡顿到30fps了……
那么明天的任务就是优化咯。



以上。

顺便将来做成的游戏可能与这个的挺相似。
http://share.acg.tv/flash.swf?aid=2454754&page=1
例大祭12莓坊主的新作,我各种手段查过好多次了都没有源……只能买了吗……哎

silvercycle 发表于 2015-6-18 11:11:07

忘记高考已结束。。。迟来的应援(其实就想看看你完坑)

Sonicthedgehog 发表于 2015-6-17 23:55:05

2015-6-17 23:50:27

再不做真的要成坑了……

好的,接上次,怪没有判定会聚一团,弹幕打起来非常费劲,附图。
http://img5q.duitang.com/uploads/item/201506/17/20150617234842_TR3en.gif

然后是之前在群里问的可以用AABB树来解决,目前正在学习中。
怪这个判定我弄得全程都是矩形,没有旋转,所以不用OBB树。

另外类似BSP那种格点的思路我不太喜欢,要不然还要什么碰撞判定啊,直接RPGmaker了。

啊,吃点啥能补肾啊?最近真是太污了……

Sonicthedgehog 发表于 2015-6-15 16:04:36

Sonicthedgehog 发表于 2015-6-14 17:37:19

Sonicthedgehog 发表于 2015-6-13 10:44:58

页: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14
查看完整版本: 【史前】TouhouDungeonAdventrue 从开始制作到做完的记录