Reputation: 97
Hi im new to developing for android and im having some troubles with my sprites not loading right. My code was perfectly fine before i started adding in a AnalogOnScreenControl now all my sprites including my AnalogOnScreenControl just show a black box. The nub on the control is also black. the only things that arent black are the blackground and the ground itself. heres my code:
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();
}
}
Any idea what im doing wrong? help is apreciated :]
Upvotes: 1
Views: 452
Reputation: 8488
You need to call the load function to load your texture after creating them. Like this:
playerTexture.load();
This line has to be just after creating them
Upvotes: 1