益智游戏的逻辑 - 我该怎么做?

时间:2013-06-07 04:55:47

标签: java android andengine

游戏到底是什么?

这是一款益智游戏。我正在使用AndEngine在Android平台(目前)上构建它。我将游戏划分为不同的世界,每个世界都包含各种级别。

问题是什么?

请参阅下面的游戏设计。游戏的目的是将碎片拖放到“下落”区域(a.k.a. holder)并形成圆圈。我已经开发了游戏的基本2级。这是第三级。哪里有3件作为不同的对象命名为1,2,3。我要将所有3件放入水滴中。问题是我怎么知道所有碎片都填满了持有人?我第一次使用AndEngine并且很少知道如何做到这一点。 敲击任何破碎的物体会将其旋转90度。因此每种方法可以有4种可能的解决方案。)

Level3

此外,逻辑应适用于任何形状,任意数量的碎片,任意数量的持有者。

我想过的想法

我们曾考虑使用以下方法解决此问题:

  1. 填充区域的面积 - >但是我们如何以编程方式做到这一点呢?
  2. 取每个碎片的中心坐标,找到距圆心的距离。在所有4个条件下验证这一点(所有4个旋转,每个旋转90度)。 - >我们试图解决这个问题。
  3. 查看是否在支架区域使用了所有碎片 - >如果有多个持有人怎么办?
  4. 任何技术帮助或任何参考资料都会非常棒。

3 个答案:

答案 0 :(得分:2)

鉴于3个谜题"件"可以旋转90度,因此可以有四种解决方案。 将这四种配置称为四个阶段"精灵可以拥有。因此,每个精灵都有四个阶段。

试试这个:

1)获取每个精灵的中间坐标(使用converToLocalCoordinates())。

2)创建一个表格,其行为Sprite 1,2,3和具有阶段1,2,3,4的列。

3)这将为您提供12个坐标。

4)在不同阶段的解决方案中找到每个精灵的中心坐标后,填写表格。

5)你可以制作一个" snpping"当精灵进入"持有者"在特定阶段,然后根据上面的表格将其设置为适当的坐标。

6)为了更好地实现捕捉,请在实现捕捉的答案坐标周围取一个范围。

7)此外,如果一个精灵已经在持有人内部而另一个被插入,如果它们发生碰撞或者精灵不在"捕捉范围内"然后精灵可以回到原来的位置。

8)注意只有当作品按照正确的状态进入时才会发生捕捉,这是由第一个精灵的阶段决定的,该第一个精灵被扣入持有者。

答案 1 :(得分:1)

您可以使用mysql和空间索引。然后你可以检查用户输入是否所有碎片组成一个圆圈?这是检查polygone-inside-polygone的链接:Check if polygon is inside a polygon

答案 2 :(得分:0)

如果碎片都旋转90度,每个拼图有四种“不同”的解决方案,对吗?

我不确定技术实现,但也许区域可以按像素计算?您必须计算非透明像素而不是使用边界框(假设.png精灵)。

然而,根据与圆心相邻的计算方法并不难实现。根据精灵边界框的大小得到一个解的(x,y)后,可以根据需要加上和减去圆的半径(以像素为单位)。您只需要知道该块的锚点所在的圆的哪个象限。

我希望这些想法有所帮助。