1

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

4

2 回答 2

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

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

于 2014-01-11T04:15:35.847 回答
0

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

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

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

0是左边缘。

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

于 2013-05-21T05:34:33.483 回答