【发布时间】:2014-04-03 06:45:48
【问题描述】:
我正在使用 Android 中的 andEngine 开发游戏,我开发了动画精灵背景、平台和分数。对于加载级别,我做了一个
.lvl 我在其中定义了固定位置的平台、玩家和障碍物的扩展文件。我想知道 andEngine 是否提供了任何东西,以便我可以动态加载障碍物、平台、硬币和其他对象,而不是加载任何文件,我的目标是只要我的玩家还活着,我的游戏世界就会继续运行。 我想我很清楚。 谢谢!!!
【问题讨论】:
我正在使用 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 变量定义的每 1 秒调用一次 TimeHandler“objectHandler”。 整数计数器“timerSeconds”被设置为基础。 Sprite 对象/实体已初始化。
现在是“魔法”:if 布尔值用于设置真正的随机性。所以这里是数学......每过一秒,添加一个“timerSecond”。然后,如果 "timerSecond" 等于 1-4 之间的随机数,然后附加精灵 "object1" 并设置它的 X 位置,也在随机范围 0-480 上。
实际上,这意味着每经过 1 秒,就有 1/4 的机会创建/附加此精灵。 (可以通过更改该随机范围最大值将其更改为任何所需的机会范围。例如:MathUtils.random(1, 100)
倒数第二行关闭 Timehandler 代码,最后一行将 Timehandler 注册到类/场景/实体/引擎(等等)。
【讨论】: