Мультитач
|
|
Ramilyanamana | Дата: Воскресенье, 21 Июля 2013, 09:32 | Сообщение # 1 |
Биззи Джей Ужасный
Сейчас нет на сайте
| Сделал сенсорное управление, но не работает мультитач. Подскажите как реализовать?
|
|
| |
|
Ramilyanamana | Дата: Воскресенье, 21 Июля 2013, 10:39 | Сообщение # 3 |
Биззи Джей Ужасный
Сейчас нет на сайте
| не подскажешь как запустить его. там формат gmz, я закинул его в туториал, в программе нажимаю открыть окно с туториалами и ни фига. ни какой реакции. Добавлено (21.07.2013, 10:39) --------------------------------------------- Блин ни черта не понятно. Есть еще примеры?
|
|
| |
|
Serikson | Дата: Четверг, 06 Марта 2014, 00:00 | Сообщение # 5 |
уже был
Сейчас нет на сайте
| Цитата Ramilyanamana ( ) не подскажешь как запустить его. там формат gmz, я закинул его в туториал, в программе нажимаю открыть окно с туториалами и ни фига. ни какой реакции. Добавлено (21.07.2013, 10:39) --------------------------------------------- Блин ни черта не понятно. Есть еще примеры?
Если ещё нужно, то вот
Код //////// Вычисления джостика ///////////
//сброс джостика if(control_type=0){ analog_distance=0; point_x=(analog_x+analog_width/2)+analog_distance*(cos(analog_direction*pi/180))+view_xview; point_y=(analog_y+analog_height/2)+analog_distance*(sin(analog_direction*pi/180))+view_yview;
//проверяем удерживается ли палец на джостике if (!device_mouse_check_button(device_used,mb_left)){ device_used=-1; }
//уравнение для аналога for(ddevice=0;ddevice<=4;ddevice+=1){ if (device_mouse_check_button(ddevice,mb_left) and (device_mouse_x(ddevice)>analog_x+view_xview-deadzone and device_mouse_y(ddevice)>analog_y+view_yview-deadzone and device_mouse_x(ddevice)<analog_x+analog_width+view_xview+deadzone and device_mouse_y(ddevice)<analog_y+analog_height+view_yview+deadzone) or device_used=ddevice){ device_used=ddevice; //вычисляем растояние и направление analog_direction = radtodeg(arctan2((device_mouse_y(ddevice)-(analog_y+view_yview+analog_height/2)),(device_mouse_x(ddevice)-(analog_x+view_xview+analog_width/2)+.000001))); analog_direction_ship = radtodeg(arctan2(-(device_mouse_y(ddevice)-(analog_y+view_yview+analog_height/2)),(device_mouse_x(ddevice)-(analog_x+view_xview+analog_width/2)+.000001))); analog_distance = sqrt(sqr(device_mouse_x(ddevice)-(analog_x+view_xview+analog_width/2))+sqr(device_mouse_y(ddevice)-(analog_y+view_yview+analog_height/2)));;
//мертвая зона для джостика if(analog_distance>analog_width/2){analog_distance=analog_width/2;} if(analog_distance<-analog_width/2){analog_distance=analog_width/2;}
//точка аналога point_x=(analog_x+analog_width/2)+analog_distance*(cos(analog_direction*pi/180))+view_xview; point_y=(analog_y+analog_height/2)+analog_distance*(sin(analog_direction*pi/180))+view_yview;
/// управление игроком direction=analog_direction_ship; speed=(analog_distance/(analog_width/2))*ship_speed; }
if(os_type==os_win32 || os_type==os_linux || os_type==os_macosx){ if (device_mouse_check_button(ddevice,mb_left) and device_mouse_x(ddevice)>virtual_x/2 and device_mouse_y(ddevice)>virtual_y/2 and device_mouse_x(ddevice)<(virtual_x+virtual_width)*1.5 and device_mouse_y(ddevice)<(virtual_y+virtual_height)*1.5){ event_perform(ev_keyboard,vk_space); }}
} ///////////////// завершаем действия ///////////////////////
//трение игрока if((analog_distance/(analog_width/2))*ship_speed<1 and speed>0){speed-=ship_friction; if(speed<0){speed=0;}}
if(x<view_xview){x+=speed;}if(x>view_xview+view_wport){x-=speed;} if(y<view_yview){y+=speed;}if(y>view_yview+view_hport){y-=speed;} }
Сообщение отредактировал Serikson - Четверг, 06 Марта 2014, 00:02 |
|
| |
XDominator | Дата: Четверг, 06 Марта 2014, 09:48 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| Ну ты и вбросил. Из всей твоей простыни ответ находится в одной строчке:
Код if (!device_mouse_check_button(device_used,mb_left)) { // }
В ГМС используется до 4 устройств. 1 тач проверяется строкой device_mouse_check_button(0,mb_left), второй (который одновременно с первым) device_mouse_check_button(1,mb_left) и так до индекса 3. Но учитывай, что большинство устройств поддерживает максимум 2 тача, так что все 4 использовать не рекомендуется. Соответственно функции возвращают true если есть тач, и false если нет. Удач!
Ghaarp
The soul lighter(Android, logic)
Zzzzombie RAGE!!!(For android)
|
|
| |
Temich7799 | Дата: Пятница, 14 Марта 2014, 13:22 | Сообщение # 7 |
частый гость
Сейчас нет на сайте
| Не надо .gmz в туториал кидать Его импортировать нужно:File->Import Project.И выбираешь нужный файл
|
|
| |