【v2.x OGE-example 第二章(第一节) 精灵的移动】
2014-11-06 17:56
288 查看
2. 类名:MovingBall
(1).精灵的移动我们可以在每次刷新的时候更新精灵的X, Y位置来达到移动的效果,下面我们用PhysicsHandler 事件来移动一个笑脸精灵,通过更改PhysicsHandler 事件的X, Y速率使精灵动起来。
/**
* 定义一个Ball精灵
* @author lin
*
*/
private static class Ball extends AnimatedSprite {
/**移动处理事件*/
private final PhysicsHandler mPhysicsHandler;//一个自动更新实体位置的IUpdateHandler逻辑事务
public Ball(final float pX, final float pY, String pTextureRegion, final VertexBufferObjectManager pVertexBufferObjectManager) {
super(pX, pY, pTextureRegion, pVertexBufferObjectManager);
this.mPhysicsHandler = new PhysicsHandler(this);//实例化事件
this.registerUpdateHandler(this.mPhysicsHandler);//注册事件,注册后才会被执行
this.mPhysicsHandler.setVelocity(DEMO_VELOCITY, DEMO_VELOCITY);//设置X, Y速率
}
//控制精灵永远在屏幕内移动,不会超出屏幕外
@Override
protected void onManagedUpdate(final float pSecondsElapsed) {
if(this.mX < 0) {//ball 精灵x坐标小于0时
this.mPhysicsHandler.setVelocityX(DEMO_VELOCITY);//设置x速率为正,即往右移动
} else if(this.mX + this.getWidth() >= SCENE_WIDTH) {//ball 精灵x坐标大于屏幕右边时,即快移出屏幕右边
this.mPhysicsHandler.setVelocityX(-DEMO_VELOCITY);//设置x速率为负,即往左移动
}
if(this.mY < 0) {//ball 精灵y坐标小于0时
this.mPhysicsHandler.setVelocityY(DEMO_VELOCITY);//设置y速率为正,即往下移动
} else if(this.mY + this.getHeight() >= SCENE_HEIGHT) {//ball 精灵y坐标大于屏幕下边时
this.mPhysicsHandler.setVelocityY(-DEMO_VELOCITY);//设置y速率为负,即往上移动
}
super.onManagedUpdate(pSecondsElapsed);//执行父类的方法
}
}
OGE_Example项目源码
相关文章推荐
- 【v2.x OGE-example 第二章(第一节) 精灵的移动】
- 【v2.x OGE-example 第二章(第一节) 精灵的移动】
- 【v2.x OGE-example 第二章(第二节) 修改器的使用】
- 【v2.x OGE-example 第一节】 绘制实体
- 【v2.x OGE-example 第一节】 绘制实体
- 【v2.x OGE-example 第二章(第二节) 修改器的使用】
- 【v2.x OGE-example 第二章(第二节) 修改器的使用】
- 【v2.x OGE-example 第一节】 绘制实体
- 【v2.x OGE-example 第一节】 绘制实体
- 【v2.x OGE-example 第三节 播放精灵动画】
- 【v2.x OGE-example 第三节 播放精灵动画】
- 【v2.x OGE-example 第三节 播放精灵动画】
- (转)cocos2d-x学习笔记(三)让精灵按照自己设定的运动轨迹行动(曲线移动)。(以椭圆轨迹为例)
- Cocos2d-x 瓦块地图小游戏 (四) 玩家精灵的移动 与 地图的移动
- Cocos2d-x格斗小游戏(四) 移动玩家精灵
- cocos3.X拖动精灵移动
- 移动过程及其数据存储带来的冲突解决办法 及其 精灵下落填充过程
- 让精灵按照自己设定的运动轨迹行动(曲线移动)。(以椭圆轨迹为例)。
- Cocos2d-x 2.0 百例精讲:如何让一个精灵跟随触点移动
- 今天看完第二章的第一节