`
dowhathowtodo
  • 浏览: 777979 次
文章分类
社区版块
存档分类
最新评论

[AndEngine] Scrollable Background

阅读更多

在AndEngine中只有一个AutoParallaxBackground的例子可看,但是这个例子中背景是一直在不停移动的,如果你想要手动控制背景移动的话,下面的例子可以帮你~

首先要创建一个ScrollableParallaxBackground的类,继承自ParallaxBackground

public class ScrollableParallaxBackground extends ParallaxBackground {
	
	private float cameraPreviousX;
    private float cameraOffsetX;

    private Camera camera;
    
	public ScrollableParallaxBackground(float pRed, float pGreen, float pBlue, Camera camera) {
		super(pRed, pGreen, pBlue);
		// TODO Auto-generated constructor stub
		this.camera = camera;
        cameraPreviousX = camera.getCenterX();
	}
	
	public void updateScrollEvents() {
        if (cameraPreviousX != this.camera.getCenterX()) {
        	cameraOffsetX = cameraPreviousX - this.camera.getCenterX();
        	cameraPreviousX = this.camera.getCenterX();
        }
	}
	
	public void scroll(int OffsetValue)
	{
		cameraOffsetX=OffsetValue;
	}

	@Override
	public void onUpdate(float pSecondsElapsed) {
        super.onUpdate(pSecondsElapsed);

        this.mParallaxValue += (cameraOffsetX * 2) * pSecondsElapsed;
        cameraOffsetX = 0;
	}

}

然后需要你在游戏的主场景中重写以下方法

@Override
public boolean onSceneTouchEvent(final Scene pScene, final TouchEvent pSceneTouchEvent) {
	
	if (pSceneTouchEvent.getAction() == MotionEvent.ACTION_DOWN) {
           mTouchX = pSceneTouchEvent.getMotionEvent().getX();
           
    } else if (pSceneTouchEvent.getAction() == MotionEvent.ACTION_MOVE) {
           float newX = pSceneTouchEvent.getMotionEvent().getX(); 
           
           mTouchOffsetX = (newX - mTouchX);
           
           autoParallaxBackground.updateScrollEvents();

           float newScrollX = mZoomCamera.getCenterX() - mTouchOffsetX;
           
           mZoomCamera.setCenter(newScrollX, mZoomCamera.getCenterY());
           
           mTouchX = newX;
    }
	
	return true;
}

以下是创建背景对象的实例

autoParallaxBackground=new ScrollableParallaxBackground(0, 0, 0,Camera);

autoParallaxBackground.attachParallaxEntity(new ParallaxEntity(25, backSprite));
autoParallaxBackground.attachParallaxEntity(new ParallaxEntity(10, middleSprite));
autoParallaxBackground.attachParallaxEntity(new ParallaxEntity(15, frontSprite));

Scene.setBackground(autoParallaxBackground);


分享到:
评论

相关推荐

    AndEngine下载

    AndEngine下载 AndEngine

    andengine 类代码组织图

     AndEngine是一个开源项目。这使得开发者在遇到问题时可以直接从源码上找到答案,也能按照自己的需要对AndEngine进行修改和扩展。AndEngine的源码在github上托管[2]。 高效  AndEngine主要使用Java语言开发,但在...

    AndEngine 类 组织图

     AndEngine是一个开源项目。这使得开发者在遇到问题时可以直接从源码上找到答案,也能按照自己的需要对AndEngine进行修改和扩展。AndEngine的源码在github上托管[2]。 高效  AndEngine主要使用Java语言开发,但在...

    AndEngine最新jar包

    AndEngine最新jar包 AndEngine最新jar包 AndEngine最新jar包

    andengine2.0开发的小游戏

    利用andengine2.0开发的一款小游戏,有兴趣的朋友可以研究下。

    andengine 中文

    andengine 中文文档

    android andengine 代码 AnimatedSprite 实例

    android andengine 代码 AnimatedSprite 实例 大家一起学习android andengine 游戏开发吧

    Andengine笔记

    AndEngine基于libGDX框架开发,使用OpenGL ES进行图形绘制,底层使用C++编写,通过JNI调用来实现,因此比较高效,功能强大。同时集成了Box2D物理引擎,因此能实现一些较为复杂的物理效果。在Rokon(另一个Android 2D游戏...

    andengine源码及demo

    andengine源码,源码扩展及demo,供14个project

    AndEngine游戏开发示例

    AndEngine游戏开发示例 详情请链接至:http://blog.csdn.net/lan410812571/article/details/9716743

    Andengine全套git库

    Andengine全套的git库,包括 AndEngineAugmentedRealityExtension AndEngineLiveWallpaperExtension AndEngineMODPlayerExtension AndEngineMultiplayerExtension AndEngineMultiTouchExtension (Merged into the '...

    AndEngine自定义Button

    AndEngine实现自定义Button

    andengine案例,jar包

    andengine.jar 2013最新,andengine+8个拓展jar包,两个案例apk. 包括andengineExample基于GLES2

    AndEngine游戏-DeliveryBoy-源代码

    AndEngine游戏 DeliveryBoy 源代码,可以用来做AndEngine游戏实例教程进行参考

    捕鱼海底捞andengine源代码

    andengine android 游戏 源代码 共享

    Andengine的jar包

    里面包含andengine.jar以及附属的8个jar扩展

    AndEngine入门篇

    AndEngine游戏引擎学习入门篇,如果你想学习Android游戏开发,请从这里开始!详细的注释

    AndEngine的jar包

    Android开发中正确的AndEngine的jar包

    AndEngine最新Jar包

    最新的AndEngine,上次看到有个资源说包含attchChild()方法,下载下来之后,发现根本就不包含,作者太不厚道了,这次给个正确的。

    andengine example

    这是andengine引擎官方提供的一个示例app,里面包含了引擎的许多方面的例子,例如物理系统、粒子系统、声音系统、碰撞检测等,效果特别绚。

Global site tag (gtag.js) - Google Analytics