私はAndEngineで遊んでいて、スプラッシュスクリーンを作っている間にこれを文書化していません。私は、SplashSceneクラスがあることを認識していますが、私が学んでいる限り、私はあらゆる種類の方法を試しています。ScaleModifierでスプライトがちらつくのはなぜですか?
しかし、私はこの権利を得ることはできません。画面は240x320(W x H)で、スプラッシュ画面のテクスチャは480x640ですので、画面に合わせて縮小しています。テクスチャローディングなどは正常に動作していますが、スプライトが表示されているときは、最初に大きなテクスチャが0.1秒間表示され、次にそれが縮小されます。私はそれが前に縮小表示されるようにしたい。すべてを試していて、setVisible(false)などを使ってattachChild()をonLoadComplete()に移動しましたが、テクスチャが毎回縮小されるのがわかります。
なぜですか?私はこれまででonLoadComplete()
を書き換えた場合
@Override
public Scene onLoadScene() {
this.scene = new Scene();
// Texture sizes
final int sX = mSplashTextureRegion.getWidth();
final int sY = mSplashTextureRegion.getHeight();
// Center on camera
final int cX = (CAMERA_WIDTH - sX)/2;
final int cY = (CAMERA_HEIGHT - sY)/2;
// Scale factor according to camera
final float scaleFactor = Math.min((float) CAMERA_WIDTH/sX, (float) CAMERA_HEIGHT/sY);
// Init sprite
splashScreen = new Sprite(cX, cY, mSplashTextureRegion);
splashScreen.setVisible(false);
// Rescale the splash-screen to fit the display, move it to (0, 0) and show it.
splashScreen.registerEntityModifier(new ScaleModifier(0.1f, 1.0f, scaleFactor));
//splashScreen.registerEntityModifier(new ScaleAtModifier(0.001f, 1.0f, scaleFactor, 0, 0));
// splashScreen.registerEntityModifier(new SequenceEntityModifier(
// new ScaleModifier(0.1f, 1.0f, scaleFactor),
// new DelayModifier(0.2f)
//));
return scene;
}
@Override
public void onLoadComplete() {
scene.attachChild(splashScreen);
splashScreen.setVisible(true);
}
:
は、ここに私のコードです
@Override
public void onLoadComplete() {
scene.attachChild(splashScreen);
mHandler.postDelayed(korv, 1000);
}
private Runnable korv = new Runnable() {
@Override
public void run() {
splashScreen.setVisible(true);
}
};
ちらつきがなくなっているが、それは良い解決策のように感じることはありません。
パーフェクト。ありがとう! – bos