Мультитач в GMS
| |
coolminer8 | Дата: Пятница, 16 Мая 2014, 15:33 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Допустим я делаю игру на андроид, чтобы на одном телефоне играли 2 человека, типа как glow hockey. Вопросы: 1. Как сделать мультитач? 2. Как узнать координаты каждого нажатия (если нажато, например, одновременно в трех местах) И, желательно, пример. Заранее всем спасибо.
|
|
| |
XDominator | Дата: Пятница, 16 Мая 2014, 16:52 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| очень легко и просто: device_mouse_x(0)// - координата х первого тача(аналогично для у) device_mouse_x(1)// - координата х для второго тача (до 4 тачей одновременно, но 4 тача поддерживают не все например андроид устройства, скажем на моем аппарате можно обработать только 2 тача одновременно device_mouse_check_button_pressed(device, button) - Обработка включения тача(аналог нажатия кнопки мыши). Для лкм(стандартная обработка тача) button - mb_left. То есть, для включения обработки 1-го тача пишем device_mouse_check_button_pressed(0, mb_left) - это вернет истину когда юзер нажмет 1 раз. Если 1 тач уже определен и юзер жмет вторым пальцем - получается 2 тач, отлавливается как device_mouse_check_button_pressed(1, mb_left). Как то так
Ghaarp
The soul lighter(Android, logic)
Zzzzombie RAGE!!!(For android)
|
|
| |
coolminer8 | Дата: Пятница, 30 Мая 2014, 11:09 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| Спасибо, +
Добавлено (30.05.2014, 11:00) --------------------------------------------- Цитата XDominator ( ) очень легко и просто: device_mouse_x(0)// - координата х первого тача(аналогично для у) device_mouse_x(1)// - координата х для второго тача (до 4 тачей одновременно, но 4 тача поддерживают не все например андроид устройства, скажем на моем аппарате можно обработать только 2 тача одновременно device_mouse_check_button_pressed(device, button) - Обработка включения тача(аналог нажатия кнопки мыши). Для лкм(стандартная обработка тача) button - mb_left. То есть, для включения обработки 1-го тача пишем device_mouse_check_button_pressed(0, mb_left) - это вернет истину когда юзер нажмет 1 раз. Если 1 тач уже определен и юзер жмет вторым пальцем - получается 2 тач, отлавливается как device_mouse_check_button_pressed(1, mb_left). Как то так smile
А вот у меня такой вопрос. Если, например, в первой кнопке у тебя device_mouse_check_button_pressed(0, mb_left) а во второй device_mouse_check_button_pressed(1, mb_left), то первая кнопка будет обрабатываться только когда нажмешь первый раз, а вторая когда второй? Т.е. придется делать проверку (0, mb_left) or (1, mb_left) и т.д.? Или совершенно без разницы в каком порядке нажимать, то есть device это как бы ID нажатия?Добавлено (30.05.2014, 11:09) --------------------------------------------- Вот сейчас протестировал, видимо придется делать проверку, а мне надо 4 тача, все будет сложно. Нет способа проще?..
Сообщение отредактировал coolminer8 - Пятница, 30 Мая 2014, 11:01 |
|
| |
XDominator | Дата: Пятница, 30 Мая 2014, 11:59 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| Нету, только поочередная проверка, как вариант - в цикле. А так по факту да, 0-3 - это ID нажатия. Соответственно если код детектит первое нажатие(ID 0), потом второе(ID 1), потом ты отпускаешь первое не отпуская второе(освобождаешь ID 0, ID 1 остается неизменным) - следующее нажатие будет снова с ID 0. Как то так.
Ghaarp
The soul lighter(Android, logic)
Zzzzombie RAGE!!!(For android)
|
|
| |
coolminer8 | Дата: Понедельник, 11 Августа 2014, 15:24 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| Короче, как всегда возник ряд проблем, попытаюсь объяснить все. 1. Допустим, один палец зажат - к месту его касания будет двигаться герой. Вторым пальцем можно выбрать какую-нибудь способность, и чтобы использовать ее надо тыкнуть на экран, но из-за этого вместо следования за первым пальцем герой идет ко второму, пока тот касается экрана.
2. Если герой стоит на месте и способность выбрана, то если после этого нажатие было на герое и потом где угодно на экране, то способность не должна применяться (может быть применена только следующим нажатием, не на герое), а сам герой должен двигаться к нажатию.
Вот как-то так, спасибо всем кто поможет)
|
|
| |
|