![]() |
hittest и жизни
Решил в игрушку добавить жизни корабликам, но возник вопрос, как это сделать правильно, с учётом того, что кораблики у меня в динамическом массиве и жизней больше одной (с одной я вполне представляю как справится). Как запомнить какому кораблику сколько жизней осталось? Есть небольшой момент, кораблик например имеет 9 жизней, а разные снаряды отнимают различное количество хп, так что ещё по аналогии нужно ввести и для снарядов (если разобраться с кораблями, думаю сам смогу).
Как вариант вижу либо создание ещё одного динамического массива, куда влепить жизни, либо одного многомерного массива. Есть вариант ещё проще? Второе это хиттест. Не уверен, что мне подойдёт стандартный хиттест. Первое, мне нужен хиттест на различные фигуры: прямоугольник, точка, треугольник, шар. При этом нужен просчёт между кадров, что бы не было проскальзываний, второе нужно ввести параметр для разных типов столкновений, где-то отнимание жизней, где-то физика столкновения (ну физику я сам напишу). То, что для сложных формой объектов нужно подцепить невидимые простые фигурки я знаю. Ещё момент, у меня все объекты имеют параметр scaleX, scaleY, это может как-то отразиться? Все объекты свободно изменяют свой rotation. Уверен, что кто-то это уже делал, скиньте отрывки кода с небольшими комментариями, попробую разобраться |
Есть вариант и проще и правильнее одновременно. Нужно создать класс кораблика, создать их экземпляры и хранить данные о каждом кораблике внутри
Привел бы пример, но с телефона не удобно По второму вопросу, есть способ, который называется теорема о разделяющец оси. Вот он и используется для таких вещей |
hitTestPoint позволяет задать точное вычисление соприкосновений, если не ошибаюсь...
|
delphic на сколько я помню, он позоляет расчитать соприкосновение в каждом кадре, но если объект движется слишком быстро, то он появляется в следующем кадре за объектом и столкновения не фиксируется. Я как-то находил урок как этого избежать
Добавлено через 1 минуту caseyryan спасибо, поищу как это сделать |
Цитата:
|
Цитата:
|
samana а мож мне не стоит по куче вычислений загоняться, а воспользоваться вашей идеей и использовать стандартный хиттест, только разбивать движение на более мелкие отрезки и просчитывать столкновение наперёд?
|
Насчёт разбиения пути на части не уверен, но я рисовал линию от предыдущей точки до следующей и хиттестил её. Кажется, всё более-менее работало, хоть и немного криво, ибо на самом деле хиттестилась не линия, а прямоугольник, который она занимала.
(Сейчас умные дяди придут и наругают меня за глупую идею) |
Добавлено через 2 часа 22 минуты
Цитата:
|
Цитата:
хотя, наверное нет, это будет почти как хиттест..... |
| Часовой пояс GMT +4, время: 16:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.