gpt4 book ai didi

java - Andengine BlackBoxes Sprite 未正确加载

转载 作者:行者123 更新时间:2023-11-30 03:25:57 25 4
gpt4 key购买 nike

大家好,我是 Android 开发的新手,我遇到了一些问题,我的 sprite 无法正确加载。在我开始添加 AnalogOnScreenControl 之前我的代码非常好,现在我所有的 Sprite 包括我的 AnalogOnScreenControl 只显示一个黑框。控件上的小块也是黑色的。唯一不是黑色的东西是黑色背景和地面本身。这是我的代码:

public class MainActivity extends BaseGameActivity {

Scene scene;
protected static final int CAMERA_WIDTH = 256;
protected static final int CAMERA_HEIGHT = 144;
BitmapTextureAtlas playerTexture;
ITextureRegion playerTextureRegion;
PhysicsWorld physicsWorld;
private Camera mCamera;

private TextureRegion controlTextureRegion;
private TextureRegion controlNubTextureRegion;

@Override
public EngineOptions onCreateEngineOptions() {
// TODO Auto-generated method stub
mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); // Camera
// Defines
// How
// we
// see
// the
// screen
EngineOptions options = new EngineOptions(true,
ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(
CAMERA_WIDTH, CAMERA_HEIGHT), mCamera); // set screen
// orientation
// and camera to
// engine
// options
return options; // return those options
}

@Override
public void onCreateResources(
OnCreateResourcesCallback pOnCreateResourcesCallback)
throws Exception {
// TODO Auto-generated method stub
loadGfx(); // load graphics
pOnCreateResourcesCallback.onCreateResourcesFinished(); // add callback
}

private void loadGfx() {
// TODO Auto-generated method stub
BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
playerTexture = new BitmapTextureAtlas(getTextureManager(), 88, 23);
playerTextureRegion = BitmapTextureAtlasTextureRegionFactory
.createFromAsset(playerTexture, getBaseContext(),
"mrsaispritesheet.png", 0, 0);

this.controlTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(new BuildableBitmapTextureAtlas(getTextureManager(), 32, 32), this.getAssets(), "basecontrol.png", false);
this.controlNubTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(new BuildableBitmapTextureAtlas(getTextureManager(), 32, 32), this.getAssets(), "controlnub.png", false);


}

@Override
public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback)
throws Exception {
// TODO Auto-generated method stub


final AnalogOnScreenControl control = new AnalogOnScreenControl(0,
CAMERA_HEIGHT - this.controlTextureRegion.getHeight(),
this.mCamera, this.controlTextureRegion,
this.controlNubTextureRegion, 200,
getVertexBufferObjectManager(),
new IAnalogOnScreenControlListener() {

@Override
public void onControlChange(
BaseOnScreenControl pBaseOnScreenControl,
float pValueX, float pValueY) {
// TODO Auto-generated method stub

}

@Override
public void onControlClick(
AnalogOnScreenControl pAnalogOnScreenControl) {
// TODO Auto-generated method stub

}

});




this.scene = new Scene();
this.scene.setBackground(new Background(0, 125, 58));

physicsWorld = new PhysicsWorld(new Vector2(0,
SensorManager.GRAVITY_MOON), false);
this.scene.registerUpdateHandler(physicsWorld);
createWalls();
this.scene.setChildScene(control);
pOnCreateSceneCallback.onCreateSceneFinished(this.scene);

}

private void createWalls() {
// TODO Auto-generated method stub
FixtureDef WALL_FIX = PhysicsFactory.createFixtureDef(0.0f, 0.0f, 0.0f);
Rectangle ground = new Rectangle(0, CAMERA_HEIGHT - 15, CAMERA_WIDTH,
15, this.mEngine.getVertexBufferObjectManager());
ground.setColor(new Color(15, 50, 0));
PhysicsFactory.createBoxBody(physicsWorld, ground, BodyType.StaticBody,
WALL_FIX);
this.scene.attachChild(ground);
}

@Override
public void onPopulateScene(Scene pScene,
OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception {
// TODO Auto-generated method stub

Sprite sPlayer = new Sprite(CAMERA_WIDTH / 2, CAMERA_HEIGHT / 2,
playerTextureRegion,
this.mEngine.getVertexBufferObjectManager());

final FixtureDef PLAYER_FIX = PhysicsFactory.createFixtureDef(10.0f,
0.0f, 0.0f);

Body body = PhysicsFactory.createBoxBody(physicsWorld, sPlayer,
BodyType.DynamicBody, PLAYER_FIX);
this.scene.attachChild(sPlayer);
physicsWorld.registerPhysicsConnector(new PhysicsConnector(sPlayer,
body, true, false));

pOnPopulateSceneCallback.onPopulateSceneFinished();
}

}

知道我做错了什么吗?感谢帮助:]

最佳答案

您需要在创建纹理后调用加载函数来加载您的纹理。像这样:

playerTexture.load();

这一行必须在创建它们之后

关于java - Andengine BlackBoxes Sprite 未正确加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18247006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com