Не просчитываются столкновения
|
|
CeBep | Дата: Понедельник, 31 Мая 2010, 12:00 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Дело было так: решил сделать на днях простенькую стрелялку, нарисовал спрайты, подготовил героя, оружие, врагов. Запустил что б протестировать, и что я увидел: пули проходят сквозь противников, хотя я в событии столкновении пули с противником выбрал действие Destroy self. В чем проблема?По глубине противники и пули на одном уровне.
The real war is to follow the law of the lord-© DMX
|
|
| |
NeZnayu | Дата: Понедельник, 31 Мая 2010, 13:11 | Сообщение # 2 |
__танцуй!__
Сейчас нет на сайте
| Какая скорость у пуль? Размер спрайтов противников? Возможно они просто пролетают насквозь.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
Made_In_USSR | Дата: Понедельник, 31 Мая 2010, 13:15 | Сообщение # 3 |
заслуженный участник
Сейчас нет на сайте
| Может быть ты пули рисуешь или противников в событии Draw? Bounding box'ы проверь, может они слишком маленькие и не "цепляются" за противников
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Сообщение отредактировал Made_In_USSR - Понедельник, 31 Мая 2010, 13:16 |
|
| |
CeBep | Дата: Понедельник, 31 Мая 2010, 13:29 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| Скорость пуль 25, противники рисуются в событии Draw. Пули действительно просто пролетают насквозь.
The real war is to follow the law of the lord-© DMX
|
|
| |
NeZnayu | Дата: Понедельник, 31 Мая 2010, 13:33 | Сообщение # 5 |
__танцуй!__
Сейчас нет на сайте
| Скорость пули не должна превышать ширину (или высоту) спрайта противника в пикселях. (это если столкновение проверять стандартным методом)
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
CeBep | Дата: Понедельник, 31 Мая 2010, 13:44 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| В ширину и высоту спрайт больше скорости пули, я проверил, а какие еще есть способы проверки столкновений? Кстати для противников исправно просчитываются все столкновения с пулями: меняются как надо спрайты, убывает здоровье.
The real war is to follow the law of the lord-© DMX
Сообщение отредактировал CeBep - Понедельник, 31 Мая 2010, 13:50 |
|
| |
NeZnayu | Дата: Понедельник, 31 Мая 2010, 14:22 | Сообщение # 7 |
__танцуй!__
Сейчас нет на сайте
| Если враги корректно реагируют на столкновение - значит дело не в них. Напиши код которым удаляешь пулю. А лучше вообще весь код столкновения. Насчет других способов проверки - чуть позже сделаю пример (сейчас не у компьютера просто)
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
FedenkoVadik | Дата: Понедельник, 31 Мая 2010, 15:00 | Сообщение # 8 |
Level 5 Gentleman
Сейчас нет на сайте
| почему никто использует такую шнягу Code for (i=0; i<=9; i+=1) list[i] = i+1; С ней скорость пули можно зделать хоть 1000, только производительность ухудшится но можно написать i+2 например ... и норм ...
|
|
| |
CeBep | Дата: Понедельник, 31 Мая 2010, 15:14 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| FedenkoVadik, а что с этим теперь делать?
The real war is to follow the law of the lord-© DMX
|
|
| |
FedenkoVadik | Дата: Понедельник, 31 Мая 2010, 17:39 | Сообщение # 10 |
Level 5 Gentleman
Сейчас нет на сайте
| все что угодно, даже лазер!
|
|
| |
Made_In_USSR | Дата: Понедельник, 31 Мая 2010, 19:39 | Сообщение # 11 |
заслуженный участник
Сейчас нет на сайте
| Quote (CeBep) Скорость пуль 25, противники рисуются в событии Draw. Пули действительно просто пролетают насквозь. Все что нарисовано в событии Draw не генерирует столкновения
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
NeZnayu | Дата: Понедельник, 31 Мая 2010, 22:24 | Сообщение # 12 |
__танцуй!__
Сейчас нет на сайте
| Made_In_USSR, еще как генерирует. (так же как оригинальный спрайт)
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
Сообщение отредактировал NeZnayu - Понедельник, 31 Мая 2010, 22:26 |
|
| |
FedenkoVadik | Дата: Понедельник, 31 Мая 2010, 23:13 | Сообщение # 13 |
Level 5 Gentleman
Сейчас нет на сайте
| ??? Да не, ну если спрайта нету (и маски соответственно тоже) но спрайт оно рисует, то коллюзий не будет, а вот если написать что то вроде draw_sprite(sprite_index,image_index,x,y) тогда да (при условий присутствия маски) , а так когда ты панель например нарисуешь она же не коллюзится ...
|
|
| |
NeZnayu | Дата: Понедельник, 31 Мая 2010, 23:52 | Сообщение # 14 |
__танцуй!__
Сейчас нет на сайте
| Если у объекта есть спрайт - столкновения будут соблюдаться согласно ему.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
FedenkoVadik | Дата: Вторник, 01 Июня 2010, 00:10 | Сообщение # 15 |
Level 5 Gentleman
Сейчас нет на сайте
| а если спрайта нет, то не будут ничего соблюдатся вообще ...
|
|
| |
NeZnayu | Дата: Вторник, 01 Июня 2010, 02:03 | Сообщение # 16 |
__танцуй!__
Сейчас нет на сайте
| Именно, но враги реагируют на столкновение, значит спрайт у пули есть. Как и обещал - пример альтернативной реализации столкновений (для сверх-быстрых пуль) скачать
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
Сообщение отредактировал NeZnayu - Вторник, 01 Июня 2010, 14:18 |
|
| |
CeBep | Дата: Вторник, 01 Июня 2010, 10:26 | Сообщение # 17 |
постоянный участник
Сейчас нет на сайте
| NeZnayu, можешь перелазить пожалуйста, а то не качает. Кстати оригинальный спрайт есть, пробовал шаманить с маской столкновений, делал по всякому, но ничего не вышло. Пули реагируют также на столкновения с другими предметами комнаты.Добавлено (01.06.2010, 10:26) --------------------------------------------- Разобрался в чем причина, сглупил я, в событии столкновения противника с пулей от противника отлетала кровь (для этого я вставил нужный кусок кода), но я его к сожалению проглядел и сделал уже с помощью кнопок тоже самое, а конкретно repeat-> ctreate moving instans of object obj_bullet, из-за чего просто создавались новые пули. Да, я проглядел объект, а все из-за того что слепо копировал с исходника своего предыдущего проекта. Так что всем спасибо за то что попытались помочь и за то (а это самое важное) что просветили о способах просчета столкновений.
The real war is to follow the law of the lord-© DMX
|
|
| |
|