andengine-4: TexturePack的学习

     对于初学游戏开发的我来说,那些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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值