对于初学游戏开发的我来说,那些texture textureregion真让人头疼,每次照着example写些东西的时候, 都要写一堆的texture加载的东东,感觉挺费时间的。 但是texturepack这个扩展缺可以让我们省去这些麻烦。 texturepack可真是新手和懒人的福音啊。
http://www.matim-dev.com/texture-packer.html 先贴个texturepack的技术文章,我就是照着这上面还有example里的一个例子学的
好了, 下面开始。 这次只是实现在屏幕上加一个Sprite, 很简单的功能。
我想要在程序里面用到前面四个图片, 如果照以往的写法, 那么至少要一个Texture, 4个TextureRegion, 一大堆代码, 看着就心烦啊。而使用了texturepack之后呢,就清爽多了。 首先用Texturepack工具生成出最后三个文件, 然后将bubble.png bubble.xml放到gfx/shapes文件夹下, 将bubble.java放到我们的src代码中。
下面上代码:
package d.y.j.game1;
import org.andengine.engine.camera.Camera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.scene.background.Background;
import org.andengine.entity.sprite.Sprite;
import org.andengine.entity.util.FPSLogger;
import org.andengine.extension.texturepacker.opengl.texture.util.texturepacker.TexturePack;
import org.andengine.extension.texturepacker.opengl.texture.util.texturepacker.TexturePackLoader;
import org.andengine.extension.texturepacker.opengl.texture.util.texturepacker.TexturePackTextureRegionLibrary;
import org.andengine.extension.texturepacker.opengl.texture.util.texturepacker.exception.TexturePackParseException;
import org.andengine.ui.activity.SimpleBaseGameActivity;
import org.andengine.util.color.Color;
import org.andengine.util.debug.Debug;
public class MainActivity extends SimpleBaseGameActivity {
private static final int width = 720;
private static final int height = 480;
private TexturePackTextureRegionLibrary texturePackTextureRegionLibrary;
@Override
public EngineOptions onCreateEngineOptions() {
Camera camera = new Camera(0, 0, width, height);
return new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(width, height), camera);
}
@Override
protected void onCreateResources() {
TexturePack texturePack;
try {
texturePack = new TexturePackLoader(getTextureManager(), "gfx/shapes/").loadFromAsset(getAssets(), "bubble.xml");
texturePack.loadTexture();
texturePackTextureRegionLibrary = texturePack.getTexturePackTextureRegionLibrary();
} catch (TexturePackParseException e) {
Debug.e(e);
}
}
@Override
protected Scene onCreateScene() {
this.mEngine.registerUpdateHandler(new FPSLogger());
final Scene scene = new Scene();
scene.setBackground(new Background(Color.RED));
Sprite sprite = new Sprite(100, 100, texturePackTextureRegionLibrary.get(bubble.B1_ID), getVertexBufferObjectManager());
Sprite sprite2 = new Sprite(100, 200, texturePackTextureRegionLibrary.get(bubble.B2_ID), getVertexBufferObjectManager());
Sprite sprite3 = new Sprite(100, 300, texturePackTextureRegionLibrary.get(bubble.B3_ID), getVertexBufferObjectManager());
scene.attachChild(sprite);
scene.attachChild(sprite2);
scene.attachChild(sprite3);
scene.setTouchAreaBindingOnActionDownEnabled(true);
return scene;
}
}
怎么样, 是不是很简单了。
效果图:
TexturePack工具下载地址:http://download.csdn.net/detail/u011365754/5738157