Понедельник, 23 Декабря 2024, 14:10

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Ракета, взрывающаяся сталкиваясь с препятствием {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
старожил
Сейчас нет на сайте
...Либо у тебя анимация взрыва появляется в позиции, предшествующей той, в которой ракета столкнулась с этим препятствием, а сама ракета удаляется, при этом заметить то, что она всё-таки коснулась препятствия невозможно. huh
И ты так и не ответил:
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
почти ветеран
Сейчас нет на сайте
Не помогло(
  • Страница 1 из 1
  • 1
Поиск:

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