使用纹理区域andengine

时间:2015-05-18 14:47:32

标签: java android sprite andengine

请注意,这是我在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;
    }
}

我的问题:

每当我运行项目时,我的欧洲地图仅部分显示在我平板电脑右上角的三角形状中。地图也颠倒了。

enter image description here

我无法使用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的基础知识:)

0 个答案:

没有答案