我正在尝试使用andengine在Android中制作一个16位风格的RPG,但我遇到了一个主要障碍:像素总是看起来变形且不成比例(不是正方形)。这是文本和精灵的问题。以下是包含我的问题http://www.andengine.org/forums/post37364.html#p37364,http://www.andengine.org/forums/post35921.html#p35921的论坛的链接。我使用Nearest作为文本和精灵的纹理选项。我的精灵可以通过纹理打包器访问,我的文本是使用类似下面的代码
创建的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();
我尝试过不同的缩放精灵,将纹理选项更改为线性,移动精灵位置但没有任何效果。任何见解将不胜感激。
更新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);
更新2:
似乎变形是由缩放(对于精灵)引起的。我没有注意到用int缩放时有任何变形,但是当按比例缩放时会有一些变形。当缩放奇数十进制(即2.5)时,变形变得更加明显。似乎还存在像素看起来变形的范围。在我的情况下,任何小于2x的东西看起来都会变形,但任何高于2的int看起来都很好。
答案 0 :(得分:2)
您是否认为变形可能是由比率解析政策引起的?如果游戏的宽高比与设备的宽高比不同,则某些分辨率策略会拉伸GL曲面以填充整个屏幕。这肯定会导致非方形像素。
在构造引擎时尝试使用RatioResolutionPolicy,看看你的像素现在是不是正方形。你现在可能会在yoru游戏的两侧获得黑条,但如果发生这种情况,你现在知道问题是什么是好的。
然后,您可以想出一种方法来获取应用的全屏大小,并使您的比率解析政策完美契合。
==更新==
根据上述评论,您的问题可能与以下内容相同: https://gamedev.stackexchange.com/questions/19075/how-can-i-make-opengl-textures-scale-without-becoming-blurry
听起来你正试图控制openGL使用的缩放模式。不幸的是,我不知道在Andengine中找到这些设置的位置。其他人都知道吗?
答案 1 :(得分:0)
尝试将pAntiAlias选项从false更改为true。
mFontInfo = FontFactory.createFromAsset(pContext.getFontManager(), mFontInfoTexture, pContext.getAssets() , "LongPixelFont.ttf", 18.0f, true, Color.BLACK);
这对文本有帮助。