0

Market Todayからダウンロードできるゲーム(Block Crusherと呼ばれる)を作成しました。最近はHoneyCombタブレットがどんどん出てきているので、それらのタブレットと互換性のあるゲームを作りたかったのです。

しかし、Motorola Xoomでゲームを実行しようとすると、いくつかの問題が発生します。

このゲームでは、カスタムビューがあります。このビューは、ゲームボードを画面に描画します。さまざまな種類の色でブロックを描画します。それらをクリックすると、ブロックが破壊され、残りは落下します。

Honeycomb以前のデバイスでは、これは問題なく機能します。MotorolaXoomで描画に問題があります。どういうわけか、ブロックの古い位置が消去されず、ブロックが落下するのではなく、非常に長くなります。(私がこれを理解できると書き留めたかどうかはわかりませんが、そう願っています)。

描画関数に次のコードを追加して、新しいフレームを描画する前にキャンバスを完全にワイプしました。

@Override
public void draw(Canvas canvas)
{
    // Disable super.draw call to make the control transparent.
    // super.draw(canvas);

    // Clear the entire screen before starting drawing.
    mTransparantPaint = new Paint();
    mTransparantPaint.setColor(0x00000000);
    canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), mTransparantPaint);

しかし、どういうわけか、ブロックが落ちているときに再描画するのにいくつかの問題があります。

私がHoneycombでこの問題を抱えている理由を誰かが知っていますか?HoneyCombのハードウェアで高速化された2Dグラフィックスパイプラインと何か関係がありますか?そのために何も有効または無効にしていません。

Honeycombタブレットをお持ちで、問題を確認したい場合は、http://peerke.no-ip.info/morbur/Svn-267.1/MorburActivity-release.apkから開発ビルドをダウンロードできます。

4

1 に答える 1

0

Honeycomb では常に super.draw(canvas) が必要であることがわかりました。これは、以前のバージョンの Android では問題を引き起こしませんでした。

于 2011-08-14T10:22:44.897 に答える