1

HTML5 キャンバスを使用して JavaScript で自転車レース ゲームを作成しています。ゲームは 3 つのキャンバスで構成されています。1 つは背景用、もう 1 つはレベル用、もう 1 つは自転車用の小さな移動キャンバス (Y 軸で上下に移動するだけ) です

この第 3 のキャンバスは、バイクの位置に応じて常に動いています。自転車のキャンバスを急激に動かさないようにするために、自転車がかなりの距離を移動したときにのみ移動します。

if(newBikePos - oldBikePos > 20 || newBikePos - oldBikePos < -20) {
    newBikePos = ((chassis.body.getPos().y + leftWheel.body.getPos().y +
        rightWheel.body.getPos().y)/3 - 150); // Roughly the position of the bike

    gameCanvas.style.top = newBikePos * SCALE; // This is how I move the canvas
}

gameContext.clearRect(0, 0, gameCanvas.width, gameCanvas.height);

// Drawing the bike(chassis, leftwheel and rightwheel) onto the bike canvas

これを Mac で実行すると正常に動作しますが (chrome、firefox、safari)、Phonegap を使用して Nexus 4 で実行すると、キャンバスが適切にクリアされません。キャンバスが移動するたびに、自転車は新しく配置されたキャンバスでスムーズに移動しますが、キャンバスが移動する前の最後のフレームからの自転車の「静止画」も表示されます。この「静止画」は、キャンバスの位置が再び変わると消えますが、説明に従って新しい静止画が作成されます。

毎秒 60 フレームでキャンバスを更新しても、「静止画像」は表示されますが、それほど目立ちません。

Phonegap を使用してこの問題に遭遇した人はいますか? それを修正する方法についてのアイデアはありますか?

4

0 に答える 0