1

as3でアーケードゲームを作っているのですが、ピクセル状の(フラッシュで滑らかにされていない)線を描きたいです。ピクセルを「手作業で」(flashのlineToなどではなく)bitmapdataオブジェクトに描画しています。

ただし、ズームアウトすると、一部の部分で線が2ピクセルの太さにレンダリングされるため、線が正しく表示されません。ただし、ズームすると、アルゴリズムが正常で、ピクセルが2倍にならないことがわかります。品質を変えても何も変わらないようです。ピクセルパーフェクトラインを取得する方法はありますか?

g=new BitmapData(w,h,false,0x000000);
var bmp:Bitmap=new Bitmap(g);
addChild(bmp);
//...
Util.drawLine(x1,y1,x2,y2,0xFFFFFF,g);

代替テキスト

ズームインから実際には2倍にならないことがわかっているため、アルゴリズムは関係ありません。また、ビットマップに描画するため、ピクセル単位で描画する必要があります。しかし、それはこのページにリストされている2番目のもののas3バージョンにすぎません

4

2 に答える 2

0

私が間違っていなければ、フラッシュの線はストロークがあり、塗りつぶしのないパスです。したがって、問題はパスが正確なピクセル値にあることですが、ストロークは2行(左に1つ、右に1つ)に分割されます。 alpha)線を+0.5移動すると問題が解決すると思います。

于 2010-01-07T21:17:41.647 に答える
0

わかりました、修正しました。フラッシュはブラウザによって拡大縮小されていました。

stage.scaleMode = StageScaleMode.NO_SCALE;

アーティファクトを取り除くために必要なのはそれだけでした。

于 2010-01-07T22:28:27.240 に答える