Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

android игра ( sutfaceview) - Программирование Android

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

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

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

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

Android studio, как запускать программу сразу на android смартфоне подключенному к usb? - Программирование Android
android studio, как запускать программу сразу на android смартфоне подключенному к usb?

Ошибка: Caused by Android java.lang.ClassCastException: android.app.Application cannot be cast - Программирование Android
Здравствуйте. Очень нужен ваш совет. При запуске приложения появляется ошибка: Caused by: java.lang.ClassCastException:...

Как приложение Android написать на С++ в Android NDK, чтоб получить *.apk? Нужен мануал - Программирование Android
Уже не в первый раз задаю вопрос. Молчание. В лучшем случае - "RTFM" и точка. Так вот, официального мануала, где есть ответ на...

Android NDK. Как пользоваться? Когда стоит использовать его вместо Android SDK? - Программирование Android
Можно ли писать в нем готовые приложения Android?

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 / 18
Регистрация: 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 / 18
Регистрация: 18.09.2010
Сообщений: 1,114
21.08.2012, 23:23 #7
Про итераторы можно почитать в интернете, там много интересного узнать можно

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

Android.support.v4.app.FragmentActivity не работает в Android Studio - Программирование Android
объясните пожалуйста,как в андроид студио добавить вышеуказанную библиотеку,чтобы работало у меня вот это Активити package...

Выбор мощного android смартфона до 10 рублей, для тестирования проектов Android Studio, что посоветуете? - Программирование Android
Какую фирму посоветуете?

Запуск игры mr.Nom через Android Studio (по книге марио цехнер программирование игр под android) - Программирование Android
Привет всем! Для тех кто читал книгу - в конце 6ой главы мы закончили писать код игры. В книге написано что - игра готова. Но в самих...

OpenGL на Android 4.4 и Android 5.0 - нет текстур - Программирование Android
Всем доброго дня. Пишу 2D игру с использование OpneGL. На устройстве с версией Android 4.4.2 (HTC 626) все текстуры на месте, все...


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

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

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