gpt4 book ai didi

java - 如何在不同的时间启动多个移动的 Sprite 对象?

转载 作者:行者123 更新时间:2023-11-30 04:14:25 25 4
gpt4 key购买 nike

我使用 AndEngine 库创建了动态壁纸服务。屏幕上有许多从左到右重复飞行的小鸟 Sprite 对象,它们从随机 y 坐标开始(我为此使用 LoopEntityModifier 和 PathModifier,如果您好奇,请参阅 my previous question)。这些鸟不应该同时开始飞行,但是在另一只鸟从最左边的屏幕出现之前有大约 3 秒的间隔/间隔。

问题是我必须使用什么技术来实现它?

我创建了 Sprites 数组来容纳小鸟 sprite。代码是这样的……

public class MyLiveWallpaperService extends BaseLiveWallpaperService {

private BirdSprite[] birdSprites; // BirdSprite is actually an extension class from AnimatedSprite
...

@Override
public Scene onLoadScene() {
...
birdSprites= new BirdSprite[4];
for (int i=0; i<4; ++i) {
birdSprites[i] = new BirdSprite(0, 0, birdTextureRegion);

scene.getChild(LAYER_FRONT).attachChild(birdSprites[i]);
}
}
}

上面的代码产生了四只鸟同时出现在左屏幕上。我尝试在调用 attachChild 之前添加 Thread.sleep(3000),但它会影响整个应用程序。动态壁纸应用程序在启动时会挂起几秒钟。

最佳答案

这是我通过使用 TimerHandler 找到的解决方案:

    scene.registerUpdateHandler(new TimerHandler(3, true, new ITimerCallback() {

@Override
public void onTimePassed(TimerHandler pTimerHandler) {
// your code here will be executed every 3 seconds (see 1st argument of TimerHandler)
...
scene.getChild(LAYER_FRONT).attachChild(birdSprites[i]);
}
}));

如果您有更好的解决方案,请告诉我。

关于java - 如何在不同的时间启动多个移动的 Sprite 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10276697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com