2013-05-16 47 views
1

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

+0

我建议你使用box2d进行物理模拟而不是尝试自己。这很容易学习。 – Aliaaa

+0

其实没有人会回答这个,如果你只是要求。我们需要知道您是否正在使用相机最新的设置,等等。根据不同的位置可能会有所不同,请给我们更多的细节。 – BennX

回答

0

基本上如果你使用ortho2D投影像这样:

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

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

是左边缘。

要获得距离,您只需要减去物体的位置。

0

为了让屏幕的边缘呈现这些情景。

  • 您不使用相机

    • 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(); 

并检查是否触摸其中一条边,将其速度更改为其他方式。

相关问题