Столкновение объектов в джаве - Java

Узнай цену своей работы

Формулировка задачи:

При столкновении моей платформы и мячика - мяч начинает как-то неправильно скатать. Как бы выразиться, телепортируется то вверх, то вниз. Может кто помочь? Код коллизии в классе Player. Вот кусочек кода обработки:
Листинг программы
  1. private void checkBallForCollision(Ball ball){
  2. int ballX = ball.getX(); int ballY = ball.getY(); int radius = ball.getRadius();
  3. if(ballY + radius + 10 > y && ballY+radius < y + height){
  4. if(ballX > x && ballX < x + width) {
  5. double newDy = ball.getY() * -1;
  6. ball.setY(y-radius);
  7. ball.setDy(newDy);
  8. }
  9. }
  10. }
Сама программа: На IntelliJ

Решение задачи: «Столкновение объектов в джаве»

textual
Листинг программы
  1. /**
  2.  * Created by Angor on 22.11.2015.
  3.  * можно использовать как класический вектор, так и как просто указатель координат
  4.  */
  5. public class Vector2D {
  6.     public double x;
  7.     public double y;
  8.  
  9.     public Vector2D(){
  10.         this.x = 0;
  11.         this.y = 0;
  12.     }
  13.  
  14.     public Vector2D(double x, double y){
  15.         this.x = x;
  16.         this.y = y;
  17.     }
  18.  
  19.     // сложение с другим вектором
  20.     public void add(Vector2D other){
  21.         this.x = this.x + other.x;
  22.         this.y = this.y + other.y;
  23.     }
  24.  
  25.     // вычитание текущего вектора из другого
  26.     public Vector2D sub(Vector2D other){
  27.         Vector2D result = new Vector2D();
  28.         result.x = other.x - this.x;
  29.         result.y = other.y - this.y;
  30.         return result;
  31.     }
  32.  
  33.     // растояние между двумя точками заданными векторами
  34.     public double distance(Vector2D other){
  35.         return Math.sqrt(Math.pow((this.x - other.x), 2) + Math.pow((this.y - other.y),2));
  36.     }
  37.  
  38.     // длина вектора
  39.     public double getLength (){
  40.         return Math.sqrt(Math.pow((this.x), 2) + Math.pow((this.y),2));
  41.     }
  42.  
  43.     // нормализация вектора
  44.     public void normalize (){
  45.         double length = this.getLength();
  46.         this.x = this.x/length;
  47.         this.y = this.y/length;
  48.     }
  49.  
  50.     // умножение вектора на число
  51.     public void mult (double factor){
  52.         this.x = this.x*factor;
  53.         this.y = this.y*factor;
  54.     }
  55. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут