请注意,这是我在Andengine的第一次破解。我一直在玩libGdx作为Android游戏开发的潜力,但它不适合我的需求,因为我只想为Android开发并且使用3D引擎进行2D工作似乎有点矫枉过正。我现在想尝试Andengine,看看它是否有我需要的东西。 Andengine的最大问题似乎是复杂的命名方案(当引擎关键字长度不足时,我更容易发生拼写错误.LibGdx有一个简单的命名约定(Texture,TextureAtlas等)。
然而,libGdx .jar中的屏幕类似乎存在错误,遗憾的是我的libGdx项目将被搁置。我看到Andengine是另一个非常受欢迎的引擎,它有一个类似(但不完全相同)的类称为场景。无论如何,我在这里。
我的代码:
private Camera camera;
private static final int CAM_WIDTH = 800;
private static final int CAM_HEIGHT = 480;
private ITexture texture;
private ITextureRegion textureRegion;
public int playerX = 300;
public int playerY = 300;
@Override
public EngineOptions onCreateEngineOptions()
{
camera = new Camera(0, 0, CAM_WIDTH, CAM_HEIGHT);
EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(CAM_WIDTH, CAM_HEIGHT), camera);
return engineOptions;
@Override
public void onCreateResources()
{
//Load textures
try{
this.texture = new AssetBitmapTexture(this.getTextureManager(), this.getAssets(), “europe.png”)
} catch (IOException e){}
this.texture.load();
}
@Override
public Scene onCreateScene()
{
Scene scene = new Scene();
scene.setBackground(0.09874f, 0.6274f, 0.8784f);
Sprite player = new Sprite(playerX, playerY, this.textureRegion, this.getVertexBufferObjectManager());
scene.attachChild(player);
return scene;
}
}
我的问题:
每当我运行项目时,我的欧洲地图仅部分显示在我平板电脑右上角的三角形状中。地图也颠倒了。
我无法使用TextureAtlas,因为我的主计算机出现故障并且在其上安装了Texture Packer,这使我不得不在平板电脑上进行编码(使用AIDE)。我也在使用Andengine过时的.jar。原因是我将git repo克隆到我的游戏中并得到一堆错误,说x86 .so文件中存在损坏。我最终会让它工作(即使我必须自己修改爆破的游戏引擎!!!)但在此期间我想学习引擎的基础知识。
有谁知道如何解决我的问题?此外,虽然不需要任何使用Andengine的建议将非常感激。提前谢谢!
额外说明:
无论我在Sprite player = new Sprite()
构造函数中添加了什么数字,都没有任何变化。
另请注意,屏幕宽度有意设置为低。
我设法从GitHub获得克隆的回购与AIDE合作。我有一个ARM Android设备,而不是x86设备(我不完全确定很多人拥有x86 Android)。这可能会帮助其他人解决这个问题:
为了修复编译错误,我进入了android.mk
脚本,该脚本初始化了Andengine的机器代码构建。我注释掉x86并用一个基本的Andengine项目运行我的应用程序并且它有效。显然它正在尝试为我的ARM设备构建x86机器代码。
我现在可以获得Andengine的全部功能,并且最终可以捣毁那些我过去一直使用的蹩脚,过时的.JAR。这为我开辟了许多教程,虽然我仍然想在这里给出答案。
在回复下面的评论时,我发布的问题是我从教程网站复制了上面的代码。我已经确定在开始编写自己的混乱代码库之前需要学习Andengine的基础知识:)