2012-07-23 3 views
0

andengine을 사용하여 android를 사용하여 16 비트 스타일의 RPG를 만들려고하는데, 난 큰 장애물을 만나고 있습니다. 픽셀은 항상 변형되고 비례 (사각형이 아님)로 보입니다. 이것은 텍스트와 스프라이트의 문제입니다. 다음은 내 이슈가있는 포럼에 대한 링크입니다 http://www.andengine.org/forums/post37364.html#p37364, http://www.andengine.org/forums/post35921.html#p35921. 텍스트와 스프라이트 둘 다에 대해 텍스처 옵션으로 Nearest를 사용하고 있습니다. 내 스프라이트 텍스처 포장을 통해 액세스 할 수 있습니다 내 텍스트는 스프라이트의 위치를 ​​이동, 내가 선형의 질감 옵션을 변경, 다른 스프라이트를 확장 시도했습니다 Andengine의 변형 된 픽셀

final ITexture mFontInfoTexture = new BitmapTextureAtlas(pContext.getTextureManager(), 256, 256, TextureOptions.NEAREST); 

mFontInfo = FontFactory.createFromAsset(pContext.getFontManager(), mFontInfoTexture, pContext.getAssets() , "LongPixelFont.ttf", 18.0f, false, Color.BLACK); 
mFontInfo.load(); 

아래에 유사한 코드를 사용하여 생성되지만 아무것도 정말 작동합니다. 어떤 통찰력이라도 대단히 감사하겠습니다.

UPDATE 1 :

이것은 내가 그 응용 프로그램의 해상도를 정의하고 사용하는 코드입니다.

// Initializes the Engine and sets the height and width. 
    MainActivity.mMainCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
    //Sets the engine options 
    EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), MainActivity.mMainCamera); 
    //Forces the screen to go into landscape 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

UPDATE 2

변형은 (스프라이트 용) 스케일링으로 인한 것 같다

. int로 스케일링 할 때 어떤 변형도 발견하지 못했지만, 소수부로 스케일을 조정할 때 약간의 변형이있었습니다. 홀수 십진수 (예 : 2.5)로 스케일을 조정하면 변형이 더 두드러졌습니다. 또한 픽셀이 변형 된 범위가있는 것으로 보입니다. 내 경우 엔 2 배 미만의 것은 변형 된 것처럼 보이지만 2 이상의 위의 int는 괜찮아 보입니다.

답변

0

pAntiAlias ​​옵션을 false에서 true로 변경하십시오.

mFontInfo = FontFactory.createFromAsset(pContext.getFontManager(), mFontInfoTexture, pContext.getAssets() , "LongPixelFont.ttf", 18.0f, true, Color.BLACK); 

텍스트에 도움이됩니다.

+0

시도했지만 문제가 해결되지 않았습니다. 또한 안티 앨리어싱으로 픽셀 화가 감소하지 않습니까? 그렇다면 그것은 내가가는 스타일 (16 비트)에 반대한다. – eBehbahani

2

변형이 비율 해결 정책으로 인해 발생할 수 있다고 생각 했습니까? 게임의 종횡비가 장치의 종횡비와 다른 경우 일부 해상도 정책은 전체 화면을 채우도록 GL 화면을 늘립니다. 이렇게하면 정사각형이 아닌 픽셀이됩니다.

엔진을 구성 할 때 RatioResolutionPolicy를 사용하여 픽셀이 사각형이 아닌지 확인하십시오. 이제 yoru 게임의 측면에 검은 색 막대가 생길 수 있습니다. 그러나 문제가 발생하면 문제가 무엇인지 알게됩니다.

그런 다음 앱의 전체 화면 크기를 얻고 비율 해결 정책을 완벽하게 적용 할 수있는 방법을 생각해 볼 수 있습니다. 당신은 OpenGL을에 의해 사용되는 스케일 모드를 제어하려고하는 것 소리 https://gamedev.stackexchange.com/questions/19075/how-can-i-make-opengl-textures-scale-without-becoming-blurry

:

위의 의견을 바탕으로

== 업데이트 == 귀하의 질문에 같은 수 있습니다 나타납니다. 안타깝게도 Andengine에서 이러한 설정을 어디서 찾을 수 있는지 알지 못합니다. 다른 사람 아시 겠죠?

+0

업데이트 1을 참조하십시오. 문제는 동일한 방식으로 모든 픽셀이 변형되는 것은 아닙니다 (사진의 op 링크 참조). 문제는 Bilinear를 텍스처 옵션으로 사용할 때 분명하지 않지만 글꼴 및 스프라이트가 흐릿하게 만드는 점은 내가하려는 스타일 (16 비트)이 아닙니다. andengine 포럼에서 귀하의 게시물에서 – eBehbahani

+1

: 당신은 스프라이트를 확장하고 샤프하고 선명한 남아있을 것으로 예상하고 있습니까? 문제가 크기 조정되지 않은 것에 발생합니까? –

+0

업데이트를 참조하십시오.링크를 살펴본 결과, min 필터와 mag 필터에 NEAREST를 사용하고 있기 때문에 링크가 문제라고 생각하지 않습니다. – eBehbahani