Ракета, взрывающаяся сталкиваясь с препятствием {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 |
почти ветеран
Сейчас нет на сайте
| Не помогло(
|
|
| |