| 
				
				Ракета, взрывающаяся сталкиваясь с препятствием {NEW ВОПРОС}
				 | 
 | 
| миха | Дата: Суббота, 22 Октября 2011, 18:04 | Сообщение # 1 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | Сделал танк. Но проблема в том, что Очень часто, а точнее в большинстве случаев ракета взрывается не долетев до ящика. Инфа:   - Взрыв создается в объекте ракеты при столкновении с объектом ящика.   - Скорость ракеты - 40
 
 Сообщение отредактировал миха - Четверг, 27 Октября 2011, 05:57  |  
| 
 | 
 |    | 
| MrIncrof | Дата: Суббота, 22 Октября 2011, 18:07 | Сообщение # 2 |  
 
Lite Programmer 
Сейчас нет на сайте 
 
 | миха, я уверен что это из-за слишком большой скорости ракеты, дай угадаю, она иногда перелетает сквозь ящик?
 |  
| 
 | 
 |    | 
| миха | Дата: Суббота, 22 Октября 2011, 18:10 | Сообщение # 3 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | 4aBo, пока не было такого, сейчас попробую с разных дистанций. Добавлено (22.10.2011, 18:10) --------------------------------------------- Да нет. Нет такого. 
 |  
| 
 | 
 |    | 
| MrIncrof | Дата: Суббота, 22 Октября 2011, 18:16 | Сообщение # 4 |  
 
Lite Programmer 
Сейчас нет на сайте 
 
 | миха, попробую решить Добавлено (22.10.2011, 18:16) --------------------------------------------- Не знаю, сейчас быстренько сделал игрока, ракету и ящик, всё нормально, взрывается только с прикосновения, бред)) Добавлено (22.10.2011, 18:16) --------------------------------------------- Скинь код пули и её создания (нажатие ЛКМ у игрока) 
 |  
| 
 | 
 |    | 
| миха | Дата: Суббота, 22 Октября 2011, 18:25 | Сообщение # 5 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | if instance_exists(obj_hero)   {if shot=1   and id_tank.in_tank=1   {a=instance_create(x+lengthdir_x(105,image_angle),y+lengthdir_y(105,image_angle),obj_bullet_tank)   a.image_angle=image_angle   a.direction=image_angle   a.speed=40   alarm[0]=44   shot=0}}
 |  
| 
 | 
 |    | 
| TimKruz | Дата: Суббота, 22 Октября 2011, 18:29 | Сообщение # 6 |  
 
старожил 
Сейчас нет на сайте 
 
 | Quote (миха) - Скорость ракеты - 40      В смысле? Пикселей в секунду или пикселей в кадр?   Может быть, столкновение проверяется перед смещением объекта, а не после.   И проверь картинку ракеты и её маску, может быть, там какой-нибудь пиксель вылетел впереди основной картинки, а проверка столкновений по пикселям.   И проверь координаты создания "взрыва", может быть, ты взрыв поставил чуть дальше ракеты.
 
  
 |  
| 
 | 
 |    | 
| миха | Дата: Суббота, 22 Октября 2011, 18:33 | Сообщение # 7 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | TimKruz, да нет... все нормально. С маской у меня никогда проблем не бывает.   Quote столкновение проверяется перед смещением объекта, а не после.      Скорее всего.
 |  
| 
 | 
 |    | 
| MrIncrof | Дата: Суббота, 22 Октября 2011, 18:38 | Сообщение # 8 |  
 
Lite Programmer 
Сейчас нет на сайте 
 
 | миха, попробуй в step пули:   Code if place_meeting(x,y,[название_коробки])   {       instance_destroy();       effect_create_above(ef_spark,x,y,.01,c_red)   }  
 |  
| 
 | 
 |    | 
| миха | Дата: Суббота, 22 Октября 2011, 19:06 | Сообщение # 9 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | 4aBo, Дело в том, что я не использую стандартный взрыв.
 |  
| 
 | 
 |    | 
| TimKruz | Дата: Суббота, 22 Октября 2011, 19:28 | Сообщение # 10 |  
 
старожил 
Сейчас нет на сайте 
 
 | ...Либо у тебя анимация взрыва появляется в позиции, предшествующей той, в которой ракета столкнулась с этим препятствием, а сама ракета удаляется, при этом заметить то, что она всё-таки коснулась препятствия невозможно.     И ты так и не ответил:   Quote (TimKruz) Пикселей в секунду или пикселей в кадр?   
 
  
 |  
| 
 | 
 |    | 
| миха | Дата: Четверг, 27 Октября 2011, 05:56 | Сообщение # 11 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | TimKruz, пикселей в кадр, конечно! Добавлено (27.10.2011, 05:56) --------------------------------------------- Еще проблема: я использовал код, который написал 4aBo. Но теперь такая проблема: пули очень часто взрываются не у границ объекта с которым прикасаются, а ближе к середине. Т. е. проходят некоторую часть пути внутрь объекта (!!!)   И уже там взрывается. Скажите, как этого избежать. 
 |  
| 
 | 
 |    | 
| 0x90 | Дата: Четверг, 27 Октября 2011, 07:22 | Сообщение # 12 |  
| 
 участник 
Сейчас нет на сайте 
 
 | Quote Еще проблема: я использовал код, который написал 4aBo. Но теперь такая проблема: пули очень часто взрываются не у границ объекта с которым прикасаются, а ближе к середине. Т. е. проходят некоторую часть пути внутрь объекта (!!!)   И уже там взрывается. Скажите, как этого избежать.     Проблема появляется только когда ракета летит в одну из сторон, или при любом направлении?
 |  
| 
 | 
 |    | 
| миха | Дата: Четверг, 27 Октября 2011, 12:01 | Сообщение # 13 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | 0x90, очень сложно отследить, скорее всего это зависит от разных факторов - от расстояния в том числе поворота ствола и т. д.. Иногда проходит внутрь много, иногда меньше, а иногда все норм.
 |  
| 
 | 
 |    | 
| MrIncrof | Дата: Четверг, 27 Октября 2011, 13:51 | Сообщение # 14 |  
 
Lite Programmer 
Сейчас нет на сайте 
 
 | миха, это связанно из-за того что у пули слишком большая скорость и она перемещается не по каждому пикселю, а, так сказать, "телепортируясь". Решение этой проблемы:   Code for (i = sprite_width; i <= speed; i += sprite_width)   {        if place_meeting(x + lengthdir_x(i,direction), y + lengthdir_y(i,direction), [название коробки])           {            x += lengthdir_x(i, direction);            y += lengthdir_y(i, direction);            instance_destroy();            effect_create_above(ef_spark,x,y,.01,c_red);        }   }  
 
 Сообщение отредактировал 4aBo - Четверг, 27 Октября 2011, 13:53  |  
| 
 | 
 |    | 
| миха | Дата: Четверг, 27 Октября 2011, 14:44 | Сообщение # 15 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | Не помогло(
 |  
| 
 | 
 |    |