2009-08-13 34 views
3

私は小さなゲームを書くのにLöve2Dを使用しています。 Löve2Dは、Lua用のオープンソースのゲームエンジンです。私が遭遇している問題は、いくつかのアンチエイリアスフィルタが、非整数位置に描画するときにスプライトに自動的に適用されるということです。Löve2Dのアンチエイリアスをオフにする

love.graphics.draw(sprite, x, y) 

したがって、xまたはyが丸ではない場合(x = 100.24など)、スプライトはぼやけて見えます。スプライトのサイズが偶数でない場合も同じことが起こります。これは、(x、y)がスプライトの中心を指しているためです。たとえば、31x30の大きさのスプライトは、ピクセルが非整数の位置に塗られているため、再びぼやけて表示されます。

私はピクセルアートを使用しているので、これをすべて回避したい、そうでなければこの効果によってアートが破壊されます。私が今使っている回避策は、math.floor()の呼び出しでコードを捨て、ペイントプログラムで透明ピクセルの行または列を追加してすべてのスプライトを偶数のサイズにすることによって強制的に座標を丸めることです、 必要に応じて。

プログラムの起動時に呼び出すことができるアンチエイリアスを無効にするコマンドがありますか?

答えて

2

誰もが興味を持っている場合は、私は他の場所に尋ねると、私は何を求めていますが、既に機能として要求されていることが判明しました:http://love2d.org/forum/tracker.php?p=2&t=7

だから、私が使用している愛の現在のバージョンを( 0.5.0)はアンチエイリアスフィルタを無効にすることはできませんが、この機能はすでにSVNバージョンのエンジンにあります。

+0

この回答(または他の回答)を正しいものとしてマークして、質問に出会った人に見やすくなると思います:) – Codahk

4

アンチエイリアスをオフにすると、エイリアシングが発生します。なぜあなたは非統合的な位置に描画していますか、それらの小数部について何をしたいのですか?

私は低レベルのグラフィックスだけを残し、丸めや切り捨てを実行するアクセサーをxとyに使用するようにコードを変更しています(私は負の場合どうでしょうか?あなたが必要とするもの。これにより、後で必要となるかもしれないアンチエイリアスを維持しながら、ピクセルアートが整数境界で描画されることが保証されます。

3

もう1つの可能な回避策は、安価な回避策として整数を丸めるためにmath.floor()を使用することです。

関連する問題