| 
				
				id объекта при клике мыши на него
				 | 
 | 
| hmpr | Дата: Суббота, 28 Марта 2015, 23:02 | Сообщение # 1 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Всем привет. Как можно сделать, чтобы при клике мыши по объекту возвращался id этого самого объекта, который будет использоваться в другом объекте? Выглядеть это должно примерно как в стратегиях, когда кликаешь по вражескому юниту, твой юнит направляется к нему и его же атакует
 |  
| 
 | 
 |    | 
| EfimovMax | Дата: Суббота, 28 Марта 2015, 23:19 | Сообщение # 2 |  
 
заслуженный участник 
Сейчас нет на сайте 
 
 | objTest.id возвратит идентификатор объекта. Собственно, присвой его глобальной переменной (global.Vrag=objTest.id) и обращайся к объекту через неё из любого места.
  Текущий проект: The Experiment ☭ 
   Выпущенные проекты Steam:   Princess.Loot.Pixel.Again   Princess.Loot.Pixel.Again x2   Dungetris
 
 Сообщение отредактировал EfimovMax - Суббота, 28 Марта 2015, 23:20  |  
| 
 | 
 |    | 
| YellowAfterlife | Дата: Воскресенье, 29 Марта 2015, 02:02 | Сообщение # 3 |  
 
Сейчас нет на сайте 
 
 | instance_place, instance_position, и все collision_ функции возвращают ID найденного экземпляра.   Следовательно, можно проделывать следующим образом в шаге юнита:   if (selected && mouse_check_button_pressed(mb_left)) { // если текущий юнит выбран и мышь нажата       target = collision_point(mouse_x, mouse_y, obj_enemy, false, true)       if (target) { /* найден враг, можно атаковать */ }   } 
   Цитата EfimovMax (  )  objTest.id возвратит идентификатор объекта.     Утверждение верно, но obj_name.id возвратит id первого экземпляра объекта, а не какого-то отдельно взятого [на который нажали мышью].
 
  
 
 Сообщение отредактировал YellowAfterlife - Воскресенье, 29 Марта 2015, 04:04  |  
| 
 | 
 |    | 
| hmpr | Дата: Воскресенье, 29 Марта 2015, 20:43 | Сообщение # 4 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Цитата YellowAfterlife (  )  instance_place, instance_position, и все collision_ функции возвращают ID найденного экземпляра.   Следовательно, можно проделывать следующим образом в шаге юнита:   if (selected && mouse_check_button_pressed(mb_left)) { // если текущий юнит выбран и мышь нажата   target = collision_point(mouse_x, mouse_y, obj_enemy, false, true)   if (target) { /* найден враг, можно атаковать */ }   }   
   Большое спасибо за помощь. Вроде работает. Еще один вопрос: мой гг при клике мыши по врагу поворачивается по направлению к нему, но при движении гг, его направление остается прежним, т.е. он к врагу не разворачивается. Как сделать, чтобы он разворачивался, т.е. чтобы он как-бы удерживал цель? 
   Вот такой код у ГГ прописан и плюс еще клавиши перемещения по комнате на клавиатуреКод    if (mouse_check_button_pressed(mb_left))        {       target = collision_point(mouse_x, mouse_y, obj_vrag, true, true)             image_angle=point_direction(x, y, target.x, target.y)           }     
 |  
| 
 | 
 |    | 
| EfimovMax | Дата: Воскресенье, 29 Марта 2015, 20:53 | Сообщение # 5 |  
 
заслуженный участник 
Сейчас нет на сайте 
 
 | Так потому что у тебя поворот спрайта происходит только при нажатии мыши. Вынеси его с блока if: 
   Код if (mouse_check_button_pressed(mb_left))          {         target = collision_point(mouse_x, mouse_y, obj_vrag, true, true)         }        image_angle=point_direction(x, y, target.x, target.y)      
  Текущий проект: The Experiment ☭ 
   Выпущенные проекты Steam:   Princess.Loot.Pixel.Again   Princess.Loot.Pixel.Again x2   Dungetris
 |  
| 
 | 
 |    | 
| hmpr | Дата: Воскресенье, 29 Марта 2015, 21:51 | Сообщение # 6 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Цитата EfimovMax (  )  Так потому что у тебя поворот спрайта происходит только при нажатии мыши. Вынеси его с блока if:    
   так он вообще не видит такой переменной и ошибку выдает
 |  
| 
 | 
 |    | 
| YellowAfterlife | Дата: Понедельник, 30 Марта 2015, 01:04 | Сообщение # 7 |  
 
Сейчас нет на сайте 
 
 | Цитата hmpr (  )  так он вообще не видит такой переменной и ошибку выдает     Установку угла нужно действительно вынести из блока, но добавить проверку на существование врага.     Create Event:   target = noone 
     Step Event:   if (instance_exists(target)) {       image_angle = point_direction(x, y, target.x, target.y)   }
 
  
 |  
| 
 | 
 |    | 
| hmpr | Дата: Понедельник, 30 Марта 2015, 13:06 | Сообщение # 8 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Большое спасибо за помощь. Все работает. Жаль плюсануть не получилось, пишет, что только через 6 дней. Если вспомню, плюсану обязательно.
 |  
| 
 | 
 |    |