Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
VolAndr
0 / 0 / 1
Регистрация: 24.05.2015
Сообщений: 11
#1

Столкновение в libgdx через overlaps - Программирование Android

15.05.2016, 23:14. Просмотров 780. Ответов 3

Есть два списка Rectangle экземпляров. Мне нужно проверить пересечение через if (bullet.overlaps(enemyK) и удалить их оба. С одним объектом получается ,а когда каждый экземпляр с каждым ,то не знаю как это реализовать.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        Iterator<Rectangle> iterBullet = bullets.iterator();
        Iterator<Rectangle> iterEnemyK = enemiesK.iterator();
 
 
        
        while(iterBullet.hasNext()) {
            Rectangle bullet= iterBullet.next();
            bullet.y += 200 * Gdx.graphics.getDeltaTime();
            if(bullet.y > 480) iterBullet.remove();
 
        }
 
        while(iterEnemyK.hasNext()) {
            Rectangle enemyK= iterEnemyK.next();
            enemyK.y -= 200 * Gdx.graphics.getDeltaTime();
            if(enemyK.y < 0) iterBullet.remove();
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2016, 23:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Столкновение в libgdx через overlaps (Программирование Android):

Libgdx AI
Добрый день , кто нибудь пользовался данной вещью? ...

Splash на libgdx
Всем привет есть 2 атласа 2048x2048 на андроиде 4.2 и выше, работает все...

Libgdx polygon
Добрый день, возникла следующая проблема : создаю объект класса Polygon...

SQLite и libGDX
Здраствуйте! Программирую потихоньку игры на либе, так чисто для себя. Тут...

Нужен ли мне LibGDX?
Уважаемые программисты, подскажите, пожалуйста, мне ответ на следующий вопрос:...

LibGDX вращение текстуры
Здравствуйте, есть ли в llibGDX какой-нибудь способ повернуть текстуру кроме...

3
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
15.05.2016, 23:41 #2
VolAndr, вложить один while в другой. Но тогда получится сложность O(m*n), и это не лучшим способом отразится на производительности, мне кажется
0
VolAndr
0 / 0 / 1
Регистрация: 24.05.2015
Сообщений: 11
15.05.2016, 23:58  [ТС] #3
YuraAAA, а по другому не как?
при
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        while(iterBullet.hasNext()) {
            Rectangle bullet= iterBullet.next();
            bullet.y += 200 * Gdx.graphics.getDeltaTime();
            if(bullet.y > 480) iterBullet.remove();
            while(iterEnemyK.hasNext()) {
                Rectangle enemyK= iterEnemyK.next();
                enemyK.y -= 200 * Gdx.graphics.getDeltaTime();
                if(enemyK.y < 0) iterEnemyK.remove();
                if (enemyK.overlaps(player)) {
                    iterEnemyK.remove();
 
                }
                if (enemyK.overlaps(bullet)) {
                    iterBullet.remove();
                }
            }
 
 
        }
иногда срабатывает ,но всё тормозит сразу как-то. Если обратно то вообще не работает
0
EVP
489 / 257 / 57
Регистрация: 14.12.2010
Сообщений: 515
18.05.2016, 17:02 #4
Цитата Сообщение от VolAndr Посмотреть сообщение
С одним объектом получается ,а когда каждый экземпляр с каждым ,то не знаю как это реализовать.
Посмотри книжку: Программирование игр под Android.
Там в главе 8 при определение столкновений рассказывается про широкую и узкую фазы определения столкновений (стр. 405).
Для уменьшения количества взаимных проверок пересечения весь игровой мир разбивается на маленькие области,
что даёт выигрыш по отсечению ненужных проверок.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2016, 17:02
Привет! Вот еще темы с решениями:

Libgdx уроки посоветуйте
Привет! Посоветуйте уроки по LibGDX плиз. В гугле на первом месте сайт -...

Компиляция игры, libGDX
Здравствуйте. Помогите скомпилировать проект. Да, странная просьба) Я так...

LibGDX загрузка аудио
Ни как не получается загрузить музыку. В папку assets помещаю drop.wav rain.mp3...

LibGDX. TexturePacker. Не пакует текстуры
Sync Project with Gradle Files нажимал. Помогите починить, пожалуйста. Для...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru