开发者

BitmapTextureAtlasTextureRegionFactory.createFromAsset crash

开发者 https://www.devze.com 2023-04-04 19:41 出处:网络
i have took a look to andengine a few months ago, and i managed to make something out of it. Now i downloaded the newest version, and i\'m having a crash for the simplest thing. Here my code

i have took a look to andengine a few months ago, and i managed to make something out of it. Now i downloaded the newest version, and i'm having a crash for the simplest thing. Here my code

package francesco.mygame;

import org.anddev.andengine.engine.Engine;
import org.anddev.andengine.engine.camera.Camera;
import org.anddev.andengine.engine.options.EngineOptions;
import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.anddev.andengine.entity.scene.Scene;
import org.anddev.andengine.entity.scene.background.ColorBackground;
import org.anddev.andengine.entity.sprite.Sprite;
import org.anddev.andengine.entity.util.FPSLogger;
import org.anddev.andengine.opengl.texture.TextureOptions;
import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
import org.anddev.andengine.opengl.texture.region.TextureRegion;
import org.anddev.andengine.ui.activity.BaseGameActivity;



public class mainMenu extends BaseGameActivity 
{

// ===========================================================

// Constants

// ===========================================================
static final int CAMERA_WIDTH = 480;

static final int CAMERA_HEIGHT = 320;



//private static final String TAG = "Main Menu";


// ===========================================================

// Fields

// ===========================================================

protected Camera mCamera;  
protected BitmapTextureAtlas mTexture;
protected TextureRegion mPlayTexture;
protected Sprite mPlaySprite;
protected Sprite mQuitSprite;
protected TextureRegion mQuitTexture;
protected Scene mMainScene;

// ===========================================================

// Constructors

// ===========================================================



// ===========================================================

// Getter & Setter

// ===========================================================



// ===========================================================

// Methods for/from SuperClass/Interfaces

// ===========================================================



@Override

public void onLoadComplete() 
{

// TODO Auto-generated method stub


}



@Override

public Engine onLoadEngine() 
{

    this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);

    return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));

}



@Override

public void onLoadResources() 
{
    BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");

    this.mTexture = new BitmapTextureAtlas(64, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
    this.mPlayTexture = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mTexture, this, "play.png", 0, 0);
    this.mQuitTexture = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mTexture, this, "quit.png", 0, 40);

    this.mEngine.getTextureManager().loadTexture(this.mTexture);

}



@Override

public Scene onLoadScene() 
{

    this.mEngine.registerUpdateHandler(new FPSLogger());
    this.mMainScene = new Scene();
    this.mMainScene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f));

    int play_x = (CAMERA_WIDTH + this.mPlayTexture.getWidth() )/2 ;
    int play_y = (CAMERA_HEIGHT + this.mPlayTexture.getHeight())/2 - this.mPlayTexture.getHeight();
    this.mPlaySprite = new Sprite( play_x, play_y, this.mPlayTexture);

    int quit_x = (CAMERA_WIDTH + this.mQuitTexture.getWidth() )/2 ;
    int quit_y = (CAMERA_HEIGHT + this.mQuitTexture.getHeight())/2 + this.mQuitTexture.getHeight();
    this.mQuitSprite = new Sprite(quit_x, quit_y, this.mQuitTexture);

    this.mMainScene.attachChild(mPlaySprite);
    this.mMainScene.attachChild(mQuitSprite);

    return this.mMainScene;

}



// ===========================================================

// Methods

// ===========================================================



// ===========================================================

// Inner and Anonymous Classes

// =========================================================== 

}

(Usually it is well indented)

The logCat error is

Failed loading Bitmap in AssetBitMapTextureAtlasSource. Asset path: gfx/play.png

java.io.FileNoFoundException: gfx/play.png

But i put the 2 images i开发者_运维百科n the folder and i added them to the project like i did when i first tried andengine(and it worked).. So i don't really understand where the problem is..

The images are 2 png created with the gimp(one is 57x36 and the other 58x31).


A java.io.FileNoFoundException will be thrown if a file wasn't found - so there is no other possibility than the engine couldn't found the image.

Make sure your images are in: assets/gfx/ and not just in a folder called gfx/.


Make sure there is assets folder in your project and from BuildPath options(project options-you can access by right-click on your project explorer), from Source Tab press Add Folder button and check assets folder to import your compilation process.

gfxfolder must be in assets folder. If there is no such folder and all your images is assets folder, you don't have to set BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/")

I am new to android and if I gain errors I try possibilities rapidly to find correct one.

0

精彩评论

暂无评论...
验证码 换一张
取 消