2010-01-07 56 views
1

我正在用as3製作一款街機遊戲,並且我想用畫線(無閃光燈)線條進行繪製。我正在將像素'手動'(而不是flash的lineTo或任何東西)繪製到位圖數據對象上。as3中完美的線條渲染

雖然這些線條看起來不太正確,但在縮小某些部分時,線條呈現2像素厚度。然而,通過放大顯然,算法很好,並且不會使像素倍增。改變質量似乎沒有改變任何東西。任何想法如何我可以獲得像素完美的線條?

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

alt text

的算法是不相關的,因爲我在它不是一個真正加倍放大知道的,因爲它的圖紙到它有一個位圖中像素的增量繪製。但它只是一個as3版本的第二個上市this page

+0

你能提供一個縮小和放大的屏幕截圖嗎?還提供了Util.drawLine的代碼。 – sberry 2010-01-07 21:02:50

+0

縮小是什麼意思?在as3中使用縮放,或使用瀏覽器或什麼? – Ross 2010-01-07 22:18:25

回答

0

好的,我修好了。 Flash正在被瀏覽器縮放。

stage.scaleMode = StageScaleMode.NO_SCALE;

是否需要擺脫工件。

0

如果我沒有錯誤閃光線是行程和沒有填充的路徑。所以問題是路徑是精確的像素值,但是筆劃被分成兩行(一個左側,一個右側),每個0.5像素寬的像素(或2個實際像素,正如我們所知道的那樣,寬度爲0.5 alpha)我認爲移動線+ 0.5將解決這個問題。

+0

這將是這種情況,如果我使用lineTo與精靈或動畫片段,我手動渲染到位圖,但。 – 2010-01-07 22:05:46