Форум программистов, компьютерный форум CyberForum.ru

Метод intersects в java - Android

Восстановить пароль Регистрация
 
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
17.01.2012, 20:49     Метод intersects в java #1
Столкнулся с проблемой, не могу отловить столкновение прямоугольников. Пытался сделать это при помощи intersects(), но оно требует два прямоугольника внутри метода, а мне нужно отловить только столкновение с одним прямоугольником. Вот что я пишу:

Java
1
2
3
4
5
6
7
8
Iterator<Enemy> i = enemy.iterator();
         while(i.hasNext()) {
             Enemy e = i.next();
             if(((Ball) ball).getRect().intersects((e.getRect())))
             {
                 i.remove();
             }
         }
Чего оно хочет не знаю, должно работать, в уроках на ютубе видел что там применяется один объект и все было нормально... В чем трабла?

UPDATE:
Значит так. Enemy и Ball - это два класса; балл - это пуля, которая должна убивать врага, соответственно, энеми - это враг, которого должен убивать бал. Мне нужно отловить столкновение этих двух объектов, отлавливать пытаюсь при помощи intersects, который требует иметь два прямоугольника, хотя в видеоуроке, который я смотрел, повествователь туториала используется всего лишь один объект класса, второй используется для вызова интерсекта, как в моем примере кода. Вот и вопрос, чем отличается его интерсект от моего? Вот его урок тут

Ошибка которую мне выдает когда я начинаю компилировать
The method intersects(Rect, Rect) in the type Rect is not applicable for the arguments (Rect)
Добавлено через 21 час 20 минут
Сам себе отвечаю

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 private void testCollision() {
        Iterator<Enemy> i = enemy.iterator();
        Iterator<Ball> b = ball.iterator();
        
          while(i.hasNext() && b.hasNext()) {
              Enemy enemies = i.next();
              Ball balls = b.next();
 
              Rect ballss = new Rect(enemies.x, enemies.y, enemies.width, enemies.height);
              Rect enemiess = new Rect(balls.x, balls.y, balls.width, balls.height);
              
              if (Math.abs(ballss.centerX() - enemiess.centerX()) <= (balls.width + enemies.width) / 2f
                      && Math.abs(ballss.centerY() - enemiess.centerY()) <= (balls.height + enemies.height) / 2f) {
                        i.remove();
                        b.remove();
              }
          }
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2012, 20:49     Метод intersects в java
Посмотрите здесь:

Обучение Java Android
Android формулы на java
Не создаются BuildConfig.java R.java Android
Android C++ vs Java
Android c++/c#/Java
Android this в Java
Не генерируется R.java Android
Android Параметры R.java
Rx Java Android
Курс по Java Android
Rx Java Android
Android Связка С++ и Java

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 05:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru