Вторник, 16 Апреля 2024, 20:19

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » Serikson [2]
Результаты поиска
SeriksonДата: Пятница, 07 Марта 2014, 14:00 | Сообщение # 1 | Тема: Проблемы с мультитачем.
уже был
Сейчас нет на сайте
Начал делать игру на адройд, когда дошло дело до кнопок решил сделать джостик для управления игроком и кнопки под стрельбу из разного вида оружия. Проблема в том что невозможно управлять кораблём и стрелять одновременно, получается что либо не работает джостик, либо стрельба. Или к примеру летишь в лево, начинаешь стрелять и нажатия блокируются пока не закончатся патроны. Не подскажите как можно решить эту проблему? cry

Добавлено (07.03.2014, 14:00)
---------------------------------------------
ни кто не знает как решить данную проблему? dry

SeriksonДата: Четверг, 06 Марта 2014, 00:00 | Сообщение # 2 | Тема: Мультитач
уже был
Сейчас нет на сайте
Цитата 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
Форум игроделов » Записи участника » Serikson [2]
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг