博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【v2.x OGE-example 第二章(第一节) 精灵的移动】
阅读量:6877 次
发布时间:2019-06-26

本文共 1413 字,大约阅读时间需要 4 分钟。

hot3.png

 

1. 位置:Modifier_example --> MovingBall
2. 类名:MovingBall

174725_7Q5z_1986592.png 

 

(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);//执行父类的方法

  }
}

 

 

 

转载于:https://my.oschina.net/orangegame/blog/341578

你可能感兴趣的文章
惠普服务器(ProLiant DL385 G7)硬盘损坏数据恢复成功
查看>>
svn实现的代码仓库与测试环境代码同步
查看>>
我的友情链接
查看>>
阿里云Aliplayer高级功能介绍(一):视频截图
查看>>
我的友情链接
查看>>
Sql Server 2016中增加了对JSON的内置支持
查看>>
jquery通过url传递 和 接收 参数
查看>>
禁用火狐14以后plugin进程
查看>>
linux增加swap分区
查看>>
Android软键盘的显示与隐藏
查看>>
ThreadPool 线程池
查看>>
AWK 文件处理计数
查看>>
我的友情链接
查看>>
AI技术说:人工智能相关概念与发展简史
查看>>
eclipse启动失败
查看>>
(已解决!)精选30道Java笔试题解答
查看>>
【Python之旅】第七篇(三):使用Redis订阅服务
查看>>
linux远程桌面链接windows
查看>>
TrendMicro:新的APT***针对亚洲和欧洲政府组织,包括中国媒体机构
查看>>
C语言中sizeof与strlen区别2
查看>>