私はアンドロイドキャンバスを使って作成したライブ壁紙を持っています。テストの結果、OpenGLのパワーを活用する必要があると感じ、AndEngineを実験しています。私は次のことをどのように達成できるのだろうかと思います。AndEngine更新画面
@Override
public void onLoadResources()
{
mtexture = new Texture(1024, 1024, TextureOptions.BILINEAR);
TextureRegionFactory.setAssetBasePath("gfx/");
mtextureRegion = TextureRegionFactory.createFromResource(mtexture , this, R.drawable.background1, 0, 0);
this.mEngine.getTextureManager().loadTexture(this.mtexture);
}
@Override
public Scene onLoadScene(){
final Scene scene = new Scene(1);
Sprite background = new Sprite(0, 0, CAMERA_WIDTH*2, CAMERA_HEIGHT, mtextureRegion)
SpriteBackground sb = new SpriteBackground(background);
scene.setBackground(sb);
scene.setBackgroundEnabled(true);
return scene;
}
これを:
は私がトップ(ないアニメーションの動き)
は、これまでのところ私は、背景イメージのためにこれを持っている上、フローティング多くの小さなビットマップと、画面全体を埋める背景イメージを持っていますバックグラウンドでうまく動作しますが、スプライトを動かす必要があります。私のキャンバスコードで
、私はすべての数ms
private final Runnable drawScreen = new Runnable() {
public void run() {
drawFrame();
}};
位置に移動する物体の&物理学を更新し、キャンバスを描画するために、次のん - 適切な方法は何
void drawFrame() {
final SurfaceHolder holder = getSurfaceHolder();
Canvas c = null;
try {
c = holder.lockCanvas();
if (c != null) {
//draw
}
} finally {
if (c != null) holder.unlockCanvasAndPost(c);
}
mHandler.removeCallbacks(drawScreen);
mHandler.postDelayed(drawScreen, 10);
}
をAndEngineでこれをするには?私は同じコードを使用してOpenGL呼び出しを代用するのですか?
私はGLEngine
を見ましたが、GlThread
キューにRunnablesを送信するはずですか?
EDIT - 私は答えを見つけたと思います... UpdateHandler。しかし、どのようにして更新プログラムのハンドラに通知することができますか(つまり、onUpdate
メソッドを呼び出す)。時限ハンドラを作成すると、あまりにも頻繁に呼び出すとどうなりますか?リクエストのキューが増えますか?