Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
1

android игра ( sutfaceview)

20.08.2012, 17:34. Просмотров 875. Ответов 6
Метки нет (Все метки)

Кто знаком с интерфейсом surfaceview, отдельный поток для отрисовки 2d графики?
Сложилась такая проблема..есть два обьекта в потоке отрисовки графики идет поверка столкновения. Координаты одного обьекта вычесляються в потоке отрисовки графики, а координаты второго обьекта идут от ontouchevent ( с наружи) два обекта иногда налетают один на другой не смотря на то что при столкновении их граний они должны отталкиваться. Налетают друг на друга только в том случаи если двигать обьект быстро пальцем. Возможно ли что что onTouchEvent получает координаты пальца быстрее чем вычесляються координаты второго обьекта? В етом ли причина того что два обекта не отбиваються друг об друга при столкновении, а заходят один на другой ? Как решить такую проблему? Спасибоооо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2012, 17:34
Ответы с готовыми решениями:

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

Игра Packman под Android
реально нужна помощь с созданием игры Я пишу игру пакман на андроид.До сюда...

Игра. Android Studio. С чего начать?
Начнем с того, что я никогда не писала игр. Просто решила рискнуть и в качестве...

Мини игра для планшетов под Android
Доброго времени суток, Уважаемые разработчики. Я здесь очень давно не был, но...

Игра "Морской бой" для Android в С#, с использованием Uniti 2d или 3d
Помогите плиз)

6
efirist
2 / 2 / 0
Регистрация: 23.03.2012
Сообщений: 20
20.08.2012, 17:51 2
если спрайт движется то он имеет шаг,я думаю дело в шаге.если он большой то именно это и может происходить. Если чтото не понял(я) то это от условия
1
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
20.08.2012, 18:14  [ТС] 3
Об этом я думал уже, но шаг я не могу менять...от него зависит скорость обьекта. Можно ли как то обойти или решить ету проблему?
0
efirist
2 / 2 / 0
Регистрация: 23.03.2012
Сообщений: 20
20.08.2012, 18:18 4
а чо за движок используется?
0
dajver
410 / 274 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
20.08.2012, 21:28 5
Скорей всего canvas отрисовывает, ни какого движка....

Вот как я отлавливал столкновения
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*Проверка на столкновения*/
    private void testCollision() {
                Iterator<Bullet> b = ball.iterator();
                while(b.hasNext()) {
                        Bullet balls = b.next();
                        Iterator<Enemy> i = enemy.iterator();
                        while(i.hasNext()) {
                          Enemy enemies = i.next();
                          
                         if ((Math.abs(balls.x - enemies.x) <= (balls.width + enemies.width) / 2f)
                                         && (Math.abs(balls.y - enemies.y) <= (balls.height + enemies.height) / 2f)) {
                                           i.remove();
                                           b.remove();
                         }
                        }
        }
        }
http://dajver.blogspot.com/2012/01/android-5-2d.html полный урок
0
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
21.08.2012, 23:11  [ТС] 6
Спасибо;-) вы могли бы мне объяснить по подробней ваш код? Что такое итератор?
Отрисовка у меня на канвасе с интервалом в пять милисекунд. Столкновение двух шаров проверяеться так : если велечина между двумя центральными точками кругов равна или меньше сумы двух радиусов, тогда true.
В принципе шары отталкиваються если скорость их движения не велика ( скорость определяеться велечиной вектора наравления, тоесть шаг спрайта наример ( 10,18) или (8,5) . Тоесть одна из подобных point добовляеться к нынешней позиции спрайта Point position. Уже дошло что когда скорость спрайтов велика то шаг естественно тоже велик, к примеру (50,80) . И спрайты попросту налетают друг на друга.. Нужно вписать проверку следующего шага и проверить если он залетает на второй спрайт и если true то уменьшить шаг ?
0
dajver
410 / 274 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
21.08.2012, 23:23 7
Про итераторы можно почитать в интернете, там много интересного узнать можно

А по поводу кода, то он проверяет на столкновение два обїекта, если ві переходили по ссілке ниже кода то видели что я там создавал игру в которой я стреляю по врагам, и соотвественно уничтожаю их после столкновения пули с врагом, собственно и все. Код в двух циклах обрабатывает столкновения всех спрайтов которые есть на сцене и находятся в итераторе.
0
21.08.2012, 23:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2012, 23:23

Игра "Морской бой" на Android
Игра &quot;морской бой&quot; на андройд помогите сделать пожалуйсто

Откуда берутся атрибуты android:layout_width и android:layout_height в элементе LinearLayout?
Недавно начал изучать Android API, а сегодня более менее разобрал основы...

Не предлагается установка Android SDK при установке Android Studio
на сайте https://developer.android.com/studio/... скачал exeшник для...


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

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

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