我正在使用Android中的andEngine开发游戏,已经开发了动画精灵背景,平台和乐谱。对于负载水平,我做了一个


  .lvl
  扩展文件,其中我在固定位置定义了平台,播放器和障碍物。我想知道andEngine提供了什么,以便我可以动态加载障碍物,平台,硬币和其他对象,而不是加载任何文件,我的目标是在玩家存活的前提下保持游戏世界的运转。
  我想我很清楚。
  谢谢!!!

最佳答案

我想指出您要研究“ TimerHandler”作为动态时间处理程序(定义附加另一个对象/实体的频率。
有了时间处理程序,您可以使用MathUtils.random(min,max)分配对象/实体的几乎任何int / double / float值。

例:

TimerHandler objectTimerHandler = new TimerHandler(1f, true, new ITimerCallback() {
    @Override
    public void onTimePassed(TimerHandler pTimerHandler) {

        int timerSeconds = 0;
        timerSeconds++;

        final Sprite object1 = new Sprite(0, 0, resourcesManager.object1_region, vbom);

        if (timerSeconds == MathUtils.random(1, 4))
        {
            attachChild(object1);
            object1.setX(MathUtils.random(0, 480));
        }
});
registerUpdateHandler(objectTimerHandler);


因此,由1f变量定义的TimeHandler“ objectHandler”每1秒调用一次。
整数计数器“ timerSeconds”设置为基数。
Sprite对象/实体已初始化。

现在是“魔术”:if布尔用于设置真正的随机性。所以这是数学……每隔一秒钟,添加一个“ timerSecond”。然后,如果“ timerSecond”等于1-4之间的随机数,然后附加子画面“ object1”并将其设置为X位置,同样在0-480的随机范围内。

实际上,这意味着每经过1秒,就会创建/附加一个精灵1/4的机会。 (可以通过更改该随机范围最大值将其更改为任何所需的机会范围。例如:MathUtils.random(1,100)
从倒数第二行关闭Timehandler代码,最后一行将Timehandler注册到类/场景/实体/引擎(等)。

07-27 19:37