AndEngine实现Sprite更换图片
2012-08-24 10:50
316 查看
也是在游戏中很常用的功能,参考了官方的例子UpdateTextureExample,不同的是我使用的是Sprite和TextureRegion,而官方例子中是AnimatedSprite和TiledTextureRegion。其实原理是一样的。
我准备了2张图片a.jpg和b.jpg,Scene启动时加载a.jpg,点击Scene在两张图片间进行切换。
我准备了2张图片a.jpg和b.jpg,Scene启动时加载a.jpg,点击Scene在两张图片间进行切换。
public class MainActivity extends SimpleBaseGameActivity { private static final int CAMERA_WIDTH = 320; private static final int CAMERA_HEIGHT = 480; private BitmapTextureAtlas mBitmapTextureAtlas; private TextureRegion mFaceTextureRegion; private boolean mSmile = true; @Override public EngineOptions onCreateEngineOptions() { Toast.makeText( this, "Touch the screen to update (redraw) an existing BitmapTextureAtlas with every touch!", Toast.LENGTH_LONG).show(); final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); return new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera); } @Override protected void onCreateResources() { BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); this.mBitmapTextureAtlas = new BitmapTextureAtlas( this.getTextureManager(), 128, 128, TextureOptions.BILINEAR); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory .createFromAsset(this.mBitmapTextureAtlas, this, "a.jpg", 0, 0); this.mBitmapTextureAtlas.load(); } @Override protected Scene onCreateScene() { this.mEngine.registerUpdateHandler(new FPSLogger()); final Scene scene = new Scene(); scene.setBackground(new Background(0.09804f, 0.6274f, 0.8784f)); final float centerX = (CAMERA_WIDTH - this.mFaceTextureRegion .getWidth()) / 2; final float centerY = (CAMERA_HEIGHT - this.mFaceTextureRegion .getHeight()) / 2; final Sprite face = new Sprite(centerX, centerY, mFaceTextureRegion, this.getVertexBufferObjectManager()); scene.attachChild(face); // scene的点击事件 scene.setOnSceneTouchListener(new IOnSceneTouchListener() { @Override public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) { if (pSceneTouchEvent.isActionUp()) { // 通过一个条件来判断当前需要加载哪张图片 MainActivity.this.mSmile = !MainActivity.this.mSmile; BitmapTextureAtlasTextureRegionFactory.createFromAsset( MainActivity.this.mBitmapTextureAtlas, MainActivity.this, MainActivity.this.mSmile ? "a.jpg" : "b.jpg", 0, 0); } return false; } }); return scene; } }
相关文章推荐
- AndEngine实现Sprite更换图片
- cc.Sprite动态更换图片
- 分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
- photoshop实现图片更换背景
- vue.js 图片上传并预览及图片更换功能的实现代码
- 完全用CSS实现鼠标移动到图片并更换图片
- js实现鼠标切换a标签时更换显示的图片
- js实现点击更换图片
- andengine多张小图片实现动画精灵效果
- 完全用CSS实现鼠标移动到图片并更换图片
- 点击图片更换验证码的实现
- jsp+jquery 实现图片验证码(在主页面不刷新的情况下可更换图片)
- 使用ImageButton怎样实现鼠标移上去和移开更换图片
- 用Jquery实现在iframe中更换首页背景图片(皮肤)
- unity3d 更换sprite renderer中sprite的图片
- 位图按钮类,实现了按下、放开和鼠标在按钮上的图片更换。
- JavaScript实现更换图片的小例子
- AndEngine图片变灰效果实现
- 最近使用ajaxFileUpload和Jcrop来实现图片上传和截图,出现一个图片无法更换的问题