Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.08.2014, 05:12
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 1  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Question hittest и жизни

Решил в игрушку добавить жизни корабликам, но возник вопрос, как это сделать правильно, с учётом того, что кораблики у меня в динамическом массиве и жизней больше одной (с одной я вполне представляю как справится). Как запомнить какому кораблику сколько жизней осталось? Есть небольшой момент, кораблик например имеет 9 жизней, а разные снаряды отнимают различное количество хп, так что ещё по аналогии нужно ввести и для снарядов (если разобраться с кораблями, думаю сам смогу).
Как вариант вижу либо создание ещё одного динамического массива, куда влепить жизни, либо одного многомерного массива. Есть вариант ещё проще?

Второе это хиттест. Не уверен, что мне подойдёт стандартный хиттест. Первое, мне нужен хиттест на различные фигуры: прямоугольник, точка, треугольник, шар. При этом нужен просчёт между кадров, что бы не было проскальзываний, второе нужно ввести параметр для разных типов столкновений, где-то отнимание жизней, где-то физика столкновения (ну физику я сам напишу). То, что для сложных формой объектов нужно подцепить невидимые простые фигурки я знаю. Ещё момент, у меня все объекты имеют параметр scaleX, scaleY, это может как-то отразиться? Все объекты свободно изменяют свой rotation.

Уверен, что кто-то это уже делал, скиньте отрывки кода с небольшими комментариями, попробую разобраться


Последний раз редактировалось neonoviiwolf; 22.08.2014 в 05:25.
Старый 22.08.2014, 09:40
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Есть вариант и проще и правильнее одновременно. Нужно создать класс кораблика, создать их экземпляры и хранить данные о каждом кораблике внутри
Привел бы пример, но с телефона не удобно

По второму вопросу, есть способ, который называется теорема о разделяющец оси. Вот он и используется для таких вещей
__________________
Ко мне можно и нужно обращаться на ты)

Старый 22.08.2014, 10:29
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 3  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
hitTestPoint позволяет задать точное вычисление соприкосновений, если не ошибаюсь...

Старый 22.08.2014, 12:40
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 4  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
delphic на сколько я помню, он позоляет расчитать соприкосновение в каждом кадре, но если объект движется слишком быстро, то он появляется в следующем кадре за объектом и столкновения не фиксируется. Я как-то находил урок как этого избежать

Добавлено через 1 минуту
caseyryan спасибо, поищу как это сделать

Старый 22.08.2014, 15:58
GrafMine вне форума Посмотреть профиль Отправить личное сообщение для GrafMine Найти все сообщения от GrafMine
  № 5  
Ответить с цитированием
GrafMine
 
Аватар для GrafMine

Регистрация: Jan 2011
Сообщений: 247
Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
delphicто он появляется в следующем кадре за объектом и столкновения не фиксируется.
объект не может двигаться быстрее кадров т.к. только при переходе на след кадр идет след движение.

Старый 22.08.2014, 16:47
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 6  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от GrafMine Посмотреть сообщение
объект не может двигаться быстрее кадров т.к. только при переходе на след кадр идет след движение.
Тут дело не в скорости быстрее кадров, ведь если например у объекта скорость 50 пикселей в кадр, то он очень легко может пропустить обнаружение пересечения со стеной. Поэтому при больших скоростях можно попробовать разбивать будущий пройденый путь на части, например на 10 пикселей и проверять столкновения постепенно в цикле.

Старый 23.08.2014, 02:04
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 7  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
samana а мож мне не стоит по куче вычислений загоняться, а воспользоваться вашей идеей и использовать стандартный хиттест, только разбивать движение на более мелкие отрезки и просчитывать столкновение наперёд?


Последний раз редактировалось neonoviiwolf; 23.08.2014 в 13:02.
Старый 23.08.2014, 05:48
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 8  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Насчёт разбиения пути на части не уверен, но я рисовал линию от предыдущей точки до следующей и хиттестил её. Кажется, всё более-менее работало, хоть и немного криво, ибо на самом деле хиттестилась не линия, а прямоугольник, который она занимала.
(Сейчас умные дяди придут и наругают меня за глупую идею)
__________________
There is no thing in this world that is not simple.

Старый 23.08.2014, 13:02
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 9  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Добавлено через 2 часа 22 минуты
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Есть вариант и проще и правильнее одновременно. Нужно создать класс кораблика, создать их экземпляры и хранить данные о каждом кораблике внутри
Привел бы пример, но с телефона не удобно
приведите пример по возможности, что-то гугл мне пока не помог, наверное не так ищу

Старый 26.08.2014, 11:08
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 10  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
Добавлено через 2 часа 22 минуты


приведите пример по возможности, что-то гугл мне пока не помог, наверное не так ищу
как вариант, если скорость большая, мне кажется лучше в enter frame прописать код слежение координат корабля и снаряда и если они равны то буууум... как то так....?

хотя, наверное нет, это будет почти как хиттест.....


Последний раз редактировалось delphic; 26.08.2014 в 15:53.
Создать новую тему Ответ Часовой пояс GMT +4, время: 04:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:21.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.