私は、アバターが常にマウスカーソルを指して回転していることに依存するトップダウンシューティングゲームを作っています。 phi
は、鋭いエッジと検出ピクセルと、画像が通常の品質でレンダリングされ、ゼロのときコンテキストをローテーションした後に画像が品質を損ねるのはなぜですか?
//Rendering.
context.save(); //Save the context state, we're about to change it a lot.
context.translate(position[0] + picture.width/2, position[1] + picture.height/2); //Translate the context to the center of the image.
context.rotate(phi); //Rotate the context by the object's phi.
context.drawImage(picture.image, -picture.width/2, -picture.height/2); //Draw the image at the appropriate position (center of the image = [0, 0]).
context.restore(); //Get the state back.
:私はこのような回転を達成します。しかし、phi
を0以外の値に設定すると(実際には0
、Pi/2
、Pi
、Pi+Pi/2
または2Pi
)、画像がぼやけて見えなくなり、個々のピクセルがぼやけて見えなくなります。ここで
は(スクリーンショットの一般的な悪い品質については申し訳ありませんが、私は違いが顕著以上であることを考える)のスクリーンショットです:
これは、まあ、少しは受け入れられません。私はイメージが常にぼやけていることはできません! なぜこれが起こっていて、私はそれを解決できますか?
元のピクセルとイメージの回転バージョンを整列させる必要があると考えると、ピクセルグリッドには一致しません。 – Randy
HTML5以外のゲームではなぜそうなりませんか?私はこの日の後にドラゴンフライをしていましたが、小さなドラゴンを回転させるのに問題はありません! – corazza
フラッシュはちょっと違っています。 – Daedalus