我是AndEngine Game Development的新手。我正在尝试加载并显示一个精灵,但我在屏幕上没有精灵的空白blcak屏幕。 这是代码:
public class MainActivity extends SimpleBaseGameActivity {
static final int CAMERA_WIDTH = 800;
static final int CAMERA_HEIGHT = 480;
private static final String TAG = "AndEngineTest";
private BitmapTextureAtlas mBitmapTextureAtlas;
private TextureRegion mPlayerTextureRegion;
@Override
public EngineOptions onCreateEngineOptions() {
Camera mCamera = new Camera(0, 0, CAMERA_WIDTH , CAMERA_HEIGHT);
return new EngineOptions(true,ScreenOrientation.LANDSCAPE_SENSOR,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera);
}
@Override
protected void onCreateResources() {
mBitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(), 32, 32,
TextureOptions.BILINEAR_PREMULTIPLYALPHA);
mPlayerTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "gfx/face_box.png", 0, 0);
mBitmapTextureAtlas.load();
}
@Override
protected Scene onCreateScene() {
this.mEngine.unregisterUpdateHandler(new FPSLogger());
Scene scene = new Scene();
scene.setBackground(new Background(3f, 6f, 2f));
Sprite Player = new Sprite(32, 32, mPlayerTextureRegion, getVertexBufferObjectManager());
Camera mCamera = new Camera(0, 0, CAMERA_WIDTH , CAMERA_HEIGHT);
Player.setPosition(mCamera.getWidth()/2 - Player.getWidth()/2,
mCamera.getHeight() - Player.getHeight() - 10);
scene.attachChild(Player);
return scene;
}
谁能说出这里的错误是什么?任何有用的帮助都将得到赞赏。
答案 0 :(得分:0)
您的代码存在一些问题:
unregisterUpdateHandler
更改为registerUpdateHandler
Camera
和Sprite
可能/应该是从它们使用的方法引用的全局变量。Player
更改为player
(这只是一项惯例,但有助于遵循)。player
时,前两个参数的位置不是大小 - 这样可以省去必须对setPosition()
进行额外方法调用。BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
的开头写下onCreateResources()
,然后将"gfx/face_box.png"
更改为"face_box.png"
。1,2和4非常重要,3和5是可选的,但我建议他们简化一些事情。
这是否解决了这个问题?