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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
#1

android игра ( sutfaceview) - Android

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

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

Сетевая игра Android
Android 2d игра для андроида
Не запускается игра на планшете Android
Игра ПАЗЛЫ Android
Android Простая игра. OpenGL
Игра пакман на андроид Android
Android Игра без движка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
efirist
2 / 2 / 0
Регистрация: 23.03.2012
Сообщений: 20
20.08.2012, 17:51     android игра ( sutfaceview) #2
если спрайт движется то он имеет шаг,я думаю дело в шаге.если он большой то именно это и может происходить. Если чтото не понял(я) то это от условия
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
20.08.2012, 18:14  [ТС]     android игра ( sutfaceview) #3
Об этом я думал уже, но шаг я не могу менять...от него зависит скорость обьекта. Можно ли как то обойти или решить ету проблему?
efirist
2 / 2 / 0
Регистрация: 23.03.2012
Сообщений: 20
20.08.2012, 18:18     android игра ( sutfaceview) #4
а чо за движок используется?
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
20.08.2012, 21:28     android игра ( sutfaceview) #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 полный урок
56illusion
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 37
21.08.2012, 23:11  [ТС]     android игра ( sutfaceview) #6
Спасибо;-) вы могли бы мне объяснить по подробней ваш код? Что такое итератор?
Отрисовка у меня на канвасе с интервалом в пять милисекунд. Столкновение двух шаров проверяеться так : если велечина между двумя центральными точками кругов равна или меньше сумы двух радиусов, тогда true.
В принципе шары отталкиваються если скорость их движения не велика ( скорость определяеться велечиной вектора наравления, тоесть шаг спрайта наример ( 10,18) или (8,5) . Тоесть одна из подобных point добовляеться к нынешней позиции спрайта Point position. Уже дошло что когда скорость спрайтов велика то шаг естественно тоже велик, к примеру (50,80) . И спрайты попросту налетают друг на друга.. Нужно вписать проверку следующего шага и проверить если он залетает на второй спрайт и если true то уменьшить шаг ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2012, 23:23     android игра ( sutfaceview)
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
21.08.2012, 23:23     android игра ( sutfaceview) #7
Про итераторы можно почитать в интернете, там много интересного узнать можно

А по поводу кода, то он проверяет на столкновение два обїекта, если ві переходили по ссілке ниже кода то видели что я там создавал игру в которой я стреляю по врагам, и соотвественно уничтожаю их после столкновения пули с врагом, собственно и все. Код в двух циклах обрабатывает столкновения всех спрайтов которые есть на сцене и находятся в итераторе.
Yandex
Объявления
21.08.2012, 23:23     android игра ( sutfaceview)
Ответ Создать тему
Опции темы

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