2013-05-16 16 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

Чтобы получить края экрана, предполагающие эти escenarios.

  • Вы не используете камеру.

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

И проверьте, касается ли он одного из краев, измените его скорость на другой.

Смежные вопросы