【问题标题】:load level dynamically using andengine in android在android中使用andengine动态加载级别
【发布时间】:2014-04-03 06:45:48
【问题描述】:

我正在使用 Android 中的 andEngine 开发游戏,我开发了动画精灵背景、平台和分数。对于加载级别,我做了一个

.lvl 我在其中定义了固定位置的平台、玩家和障碍物的扩展文件。我想知道 andEngine 是否提供了任何东西,以便我可以动态加载障碍物、平台、硬币和其他对象,而不是加载任何文件,我的目标是只要我的玩家还活着,我的游戏世界就会继续运行。 我想我很清楚。 谢谢!!!

【问题讨论】:

    标签: android andengine


    【解决方案1】:

    我想指出您调查“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 变量定义的每 1 秒调用一次 TimeHandler“objectHandler”。 整数计数器“timerSeconds”被设置为基础。 Sprite 对象/实体已初始化。

    现在是“魔法”:if 布尔值用于设置真正的随机性。所以这里是数学......每过一秒,添加一个“timerSecond”。然后,如果 "timerSecond" 等于 1-4 之间的随机数,然后附加精灵 "object1" 并设置它的 X 位置,也在随机范围 0-480 上。

    实际上,这意味着每经过 1 秒,就有 1/4 的机会创建/附加此精灵。 (可以通过更改该随机范围最大值将其更改为任何所需的机会范围。例如:MathUtils.random(1, 100)

    倒数第二行关闭 Timehandler 代码,最后一行将 Timehandler 注册到类/场景/实体/引擎(等等)。

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 2023-03-23
      • 2023-03-20
      相关资源
      最近更新 更多