AndEngineライブラリを使用してライブ壁紙サービスを作成しました。画面には、左から右に繰り返し飛んでいる鳥のスプライトがあります。ソリューションにLoopEntityModifierとPathModifierを使用しています。鳥は、左側の画面から表示されるたびにY位置からランダムに開始するようにコード化されています。
コードは次のようになります。
public class MyLiveWallpaperService extends BaseLiveWallpaperService {
private AnimatedSprite birdSprite;
...
public Scene onLoadScene() {
...
float[] coordY = generateRandomCoordY(); // my custom function to generate random array of Y-coordinates
Path path = new Path(coordX, coordY); // set the coordinate to Path object
// register the modifiers (for the one who is curious, 1st argument of PathModifier is the duration,
// but it has nothing to do with the question)
birdSprite.registerEntityModifier(new LoopEntityModifier(new PathModifier(10, path)));
...
}
}
問題は、LoopEntityModifier&PathModifierが実行されたときに、パスのY座標値を変更できなくなることです。ループが開始するたびに、新しいパスのY座標値を再度設定できるようにします。