求助三消游戏宝石下落思路

观察了 《开心消消乐》 和《 candy crush soda saga》 ,宝石的垂直下落都是走的重力加速的效果,不是匀速, 所以感觉是加入了实时计算

不需要下退一格,因为要遍历每个格子,所以如果不能从上、左上、右上取宝石,那么这个格子就跳过好了。

我认为实时计算比较靠谱 因为如果一次性计算好 宝石的目标位置 虽然保存了宝石掉落到目标位置的节点路径 这样就相当于是宝石吧位置都提前预定好了 这样就会出现一个问题 如果A宝石到达指定位置需要走5部 但是A宝石到达指定位置上方的宝石 只需要3步就可以到达 这样出现的效果就是 A宝石还没到达指定位置的时候 A宝石要到达指定位置的上方就已经存在一个宝石了 这样形成的动画效果就是上方先有了宝石 下方才有的 正确的效果应该是从下往上依次填充
如果是实时计算的话 就可以避免这样的情况发生 如果是一次计算好的话 在所有的宝石到达指定位置以前是无法再次进行更新位置的算法操作 限制比较多
实时计算和一次计算 他们的计算消耗应该是一样的 虽然一次计算是在一帧以内计算出来的 但是这一帧的计算量还是不小的 这样一帧执行的时间势必会比实时计算的时间要长

1赞

最近看了篇关于三消游戏开发的介绍。发现使用一个ColumnManager对象来对宝石进行按列管理是比较方便的思路。
而具体移动确实实时计算比较好,我认为可能在ColumnManager中为宝石按步移动比较好(每次移动到另外一格)

关于下落速度测试效果如何 我测试了重力加速度 感觉比candy慢很多

是不是调整一下数值就行了?另外我猜需要注意检查一下不同分辨率下速度能否匹配的问题。

最近看了篇关于三消游戏开发的介绍。发现使用一个ColumnManager对象来对宝石进行按列管理是比较方便的思路。

楼主看的这篇帖子能发下连接嘛!我也遇到同样问题!没有好思路!或者想和楼至交流下

已经忘记在哪看到的了,不过我记得Unity里的一个例子好像是用到了这种设计

其实难点还在于有斜向下落和纵向下落在下落过程中有重叠产生,可能在实时检测的时候要添加一些判断

楼主解决了吗,能不能说下做法啊,我现在也遇到这个问题!

我是这样想的 通关下落规则可以知道棋子从什么位置到上面位置 还有什么地方斜向掉落 这些写在while 里 每一步判断 是否到斜向掉落的位置了 到了后 x 和y 都偏移 完了后继续y轴掉落 当到达位置后判断棋子是否可消除 qq 1016121454 加我qq 我们可以后续交流交流

楼主。。。一样的问题。
只看到实时计算和一开始计算完两种方式。
不知道具体一点的算法。还是无从下手啊。。。
好心多指点一下啊!!!

http://www.cocoachina.com/game/20140709/9076.html
我就是按照这篇文章的方法做的

嗯。感谢回复。我昨天又问了人做出来了。
就是每一轮只移动一格,斜的也认为是一步。在临时表里做移动,再找下一轮所有可移动一格的。

好快啊。你的处理思路:+1:

其实很简单的。。。你把 消除了的 数组 赋值 = 0那你就知道 你该从那里 落下来了。落下来后 把值 赋成 1

主要是斜向下落时感觉很困惑

— Begin quote from ____

引用第23楼masterk于2016-03-10 09:59发表的 回 22楼(cenxcen) 的帖子 :
嗯。感谢回复。我昨天又问了人做出来了。
就是每一轮只移动一格,斜的也认为是一步。在临时表里做移动,再找下一轮所有可移动一格的。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=238652&pid=1515865

— End quote

版主能再说详细点吗?或者给点伪代码,现在这块比较迷惑

没人了吗? 谁实现了啊,给点具体的思路啊:14::14::14::14::14::14::14::14::834::834::845::845:

挖个坟我们实现了 每个元素都独立计算 遍历update

1赞