2010-01-07 6 views
1

저는 아케이드 게임을 as3으로 만들고 있어요. 나는 선을 그릴 때 선을 그어 보이고 싶습니다. 나는 픽셀을 '손으로'(플래시의 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

알고리즘

내가 그 정말 배가되지에서 줌 알고 있기 때문에 관련이없는, 그것이 가지고있는 비트 맵의 ​​도면부터 픽셀 단위로 그려 질 수 있습니다. 그러나 플래시의 라인이 잘못된 것이 아니라면 스트로크가없고 채우기가없는 경로 인 this page

+0

축소 한 대 확대 한 스크린 샷을 제공 할 수 있습니까? 또한 Util.drawLine에 대한 코드를 제공하십시오. – sberry

+0

축소하면 무엇을 의미합니까? as3 또는 브라우저에서 스케일링을 사용합니까? – Ross

답변

0

좋아, 해결했습니다. 플래시가 브라우저에 의해 조정되었습니다.

stage.scaleMode = StageScaleMode.NO_SCALE;

유물을 제거하는 데 필요한 모든 것이 었습니다.

0

에 나열된 2 번째 버전의 as3 버전입니다. 그래서 문제는 경로가 정확한 픽셀 값이지만 스트로크가 각 0.5 픽셀의 플래시 (또는 실제 픽셀 2 개, 우리가 알고있는 것처럼 2 개 라인 (왼쪽, 오른쪽 중 하나), 0.5 알파) 나는 + 0.5 라인을 움직이면 문제가 해결 될 것이라고 생각한다.

+0

만약 내가 스프라이트 나 무비 클립과 함께 lineTo를 사용했다면 나는 비트 맵에 직접 렌더링을하고있다. –