2010-12-14 21 views
5

私はキャンバス要素に(ボールの)スプライトを描画しています。しかし、ボールが移動すると、ボールのxまたはy位置は、例えば、 (20.153; 63.638)。キャンバスを使用してこのイメージを描画すると、トランスペアレントピクセルを使用してボールをより正確に表示します。私は透明画素のものを避けるために、ボールを描き、そしておそらくゲームをたくさんスピードアップする前にMath.round()を使用する必要があるかどうかをHTML5キャンバスでハーフピクセルを描画しないようにすると速度が向上しますか?

私は思っていました。これは大いに役立つでしょうか?ゲームは、複雑な卓球ゲームです。

下の画像は、私の説明を支援する必要があります

+1

速度が上がるかどうかは、ブラウザの 'Canvas'の実装によって異なります。 – Gabe

+0

ゲームをプレイするアドレスを教えてもらえますか? – cuixiping

答えて

4

少なくともthis guy seems to believe so。 Gabeが述べたように、実装に依存します。あなたは、通常のcoordsの(1、14、など)を使用している場合は、何らかのアンチエイリアシングがで蹴るように見える

注意。この理由から、一部のガイド(Dive Into HTML5が主に)は、半画素(つまり1.5、14.5など)を使用してレンダリングする方が良いと示唆されているようです。しかし、これがパフォーマンスに何か変わるかどうかはわかりません。少なくともレンダリング結果には目立っています。

さまざまなレイヤースキームを試してみることもできます。詳細については、this questionを参照してください。あなたの状況によっては、オブジェクトを個別のキャンバスとして扱い、バックグラウンドの上にオフセットすることもできます。

また、すべてを1つのキャンバスにレンダリングすることもできます。この場合は、追跡するための余分なものがあります。 This libraryはあなたのためにすべての簿記を扱っているようです。

+1

ありがとうございます。ゲームを終えたら、パフォーマンスと外観の違いをテストするだけだと思います。私は、さまざまなブラウザでテストしてみようと思います。 – mike

+0

Cool。あなたの発見を公表することができれば幸いです。がんばろう。 :) –

+0

別々のキャンバス(または背景のある標準的なHTML要素さえも)上にスプライトを提案する+1。より良いパフォーマンスのために – Phrogz

関連する問題