Идеальный рендеринг линий в as3 - PullRequest
1 голос
/ 07 января 2010

Я делаю аркадную игру в as3 и хочу рисовать пиксельные (без сглаживания) линии.Я рисую пиксели «вручную» (а не с помощью lineTo или чего-либо еще во флэш-памяти) на объект растровых данных.

Линии выглядят не совсем правильно, хотя при уменьшении линии на некоторых участках отображается толщина 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 второго, указанного на этой странице

Ответы [ 2 ]

0 голосов
/ 08 января 2010

Хорошо, я исправил это. Вспышка масштабировалась браузером.

Stage.scaleMode = StageScaleMode.NO_SCALE;

Было все, что нужно было, чтобы избавиться от артефактов.

0 голосов
/ 08 января 2010

, если я не ошибаюсь, строки во флэш-памяти - это пути с штрихом и без заполнения. поэтому проблема в том, что путь имеет точное значение пикселя, но штрих делится на 2 строки (одну слева, одну справа) шириной 0,5 пикселя (или 2 фактических пикселя, как мы их знаем, шириной 0,5 альфа) я думаю, что перемещение линии + 0.5 решит проблему.

...