【问题标题】:Get distance of sprite and Screen获取精灵和屏幕的距离
【发布时间】:2013-05-16 06:26:15
【问题描述】:

如何获取屏幕边缘与矢量移动精灵之间的距离?我想得到我的移动精灵和屏幕边缘之间的距离,这样当我的精灵接触到边缘时它会反弹。

【问题讨论】:

  • 我建议您使用box2d进行物理模拟,而不是自己尝试。很容易学习。
  • 实际上,如果您只是要求,没有人会回答这个问题。我们需要知道您是否正在使用相机,此时您的设置是什么等等。取决于职位可能会有所不同,所以请给我们更多的细节。

标签: java libgdx game-physics


【解决方案1】:

基本上,如果您使用这样的正交投影:

Matrix4().setToOrtho2D(0, 0, (float) Gdx.graphics.getWidth(), (float) Gdx.graphics.getHeight());

Gdx.graphics.getWidth() 将返回屏幕的右边缘

0 是左边缘。

要获得距离,您只需减去对象的位置即可。

【讨论】:

    【解决方案2】:

    在这些场景下获取屏幕边缘。

    • 您没有使用相机

      • X 左边缘 = 0
      • X 右边缘 = Gdx.graphics.getWidth()
      • Y 底边 = 0
      • Y 顶边 = Gdx.graphics.getHeight()
    • 您正在使用相机(原点位于相机的左下方)

      • X 左边缘 = 0
      • X 右边缘 = camera.viewportWidth()
      • Y 底边 = 0
      • Y 顶边 = camera.viewportHeight()
    • 您正在使用相机(原点不在它的左下角-移动相机-)

      • X 左边缘 = camera.position.x-camera.viewportWidth()/2
      • X 右边缘 = camera.position.x+camera.viewportWidth()/2
      • Y 底边 = camera.position.y-camera.viewportHeight()/2
      • Y 顶边 = camera.position.x+camera.viewportHeight()/2

    像这样获取 spritePosition:

    sprite.getX();
    sprite.getY();
    

    并检查是否正在接触其中一个边缘,将其速度更改为另一种方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多