AS3での完璧なラインレンダリング
-
19-09-2019 - |
質問
私はAS3でアーケードゲームを作成していますが、pixely(滑らかではない)ラインを描きたいと思っています。ピクセルを「手で」(Flashのリネートなどではなく)BitMapDataオブジェクトに描画しています。
ただし、ズームアウトすると、ラインが一部の部分で厚さ2ピクセルにレンダリングされると、ラインがまったく正しく表示されません。ただし、ズームすることにより、アルゴリズムが問題であり、ピクセルが2倍になっていないことが明らかです。品質を変えることは何も変わらないようです。 Pixel Perfect Linesをどのように入手できるか考えてみませんか?
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バージョンにリストされています このページ
解決 2
わかりました、私はそれを修正しました。フラッシュはブラウザによってスケーリングされていました。
stage.scalemode = stagescalemode.no_scale;
アーティファクトを取り除くために必要なのはすべてでした。
他のヒント
私がフラッシュで間違っていない場合、ストロークのパスであり、詰め物がありません。したがって、問題はパスが正確なピクセル値であるが、ストロークは0,5フラッシュピクセル幅ごとに2行(左、右左、右)で分割されていることです。アルファ)ライン + 0.5を移動すると問題が解決すると思います。
所属していません StackOverflow