Логин:
Пароль:
Настройки
http://lfforever.ru/design/black.css http://lfforever.ru/design/ds_dw.css http://lfforever.ru/design/xmas.css
Присоединяйся к каналу LFF в Discord!
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Фан Форум для LF'айтеров » Игрострой » Модострой LF2 » Руководства и База знаний » Столкновение объектов(без длл) (У вас нет длл? Тогда мы идем к вам!)
Столкновение объектов(без длл)
24.12.13 15:32 | #1

Репутация: 12
Постов: 362
Вы не знаете как сделать столкновение объектов разной силы, без использования длл?
Тогда вот небольшая памятка:

Дано:
У вас есть 4 объекта у которых есть: bdy №1 bdy №2 bdy №3 bdy №4, соответственно 1 - самый слабый объект и по возрастающей до самого сильного - 4-го.

Задача 1.
Нам нужно столкнуть самые слабые объекты(сила №1), но чтобы остальные объекты с более большой силой(2,3 и 4) тоже могли уничтожить наш слабый объект.
Решение:
Для этого мы ставим bdy №1 в этот объект,  но чтобы остальные объекты тоже могли уничтожить его - мы ставим state: 3000. И наш объект перейдет в кадр разрушения(10-й фрейм).
Задача 2.
Нам нужно столкнуть 2 объекта силой №2, но чтобы мы могли уничтожить и самый слабый объект(№1), но не могли уничтожить более сложные(№3 и 4).
Решение:
Для этого мы ставим в объект 2-й силы - bdy №2; state: 3005; itr для уничтожения bdy №1.Таким образом наш объект уничтожит самый слабый, а если его самого уничтожат то он перейдет ,из-за стейта 3005, в кадр разрушения(30-й фрейм).
Задача 3.
Нам нужно столкнуть объекты силой №3, но чтобы мы могли уничтожить более слабые(№1 и 2) , но не могли уничтожить самый сильный (№4).
Решение:
Для этого мы ставлим bdy №3; state: 3005; itr для bdy № 1 и 2. И при ударе об объект силой 3 или 4 наш объект перейдет в кадр разрушения(30-й фрейм).
Задача 4.
Нам нужно столкнуть наш самый сильный объект(сила №4), но чтобы мы могли уничтожить самые слабые(№1,2 и 3).
Решение:
Для этого мы ставим bdy №4 и itr на bdy №1,2и3. При ударе так же объект силы 4 перейдет в кадр разрушения(30-й фрейм)

Итог: Полное взаимодействие с различными типами сил, без использования dll библиотеки.

ERKD team togever NTLH FOREVER!
24.12.13 21:07 | #2

Репутация: 1
Постов: 71
А если не использовать, type: 3 и статусы с 3000? (я знаю как)
[ Маленький Фриз говорит: это сообщение было отредактировано!]
:3 эЭэпик будет за мной
25.12.13 08:30 | #3

Репутация: 416
Постов: 8072
Цитата
А если не использовать, type: 3 и статусы с 3000? (я знаю как)

Тогда захватами

Цитата
Для этого мы ставим bdy №1 в этот объект, но чтобы остальные объекты тоже могли уничтожить его - мы ставим state: 3000. И наш объект перейдет в кадр разрушения(10-й фрейм).

но звучит всё тут так, будто все 4 объекта имеют 3000-й статус, поэтому непонятно несколько что хотел сказать
или ты о разнице высоты bdy? То есть bdy 1 не может достать до bdy 2\3\4, а они в атаке имеют в перечисляемых itr и уровень bdy 1 ? ноу?
Кажется ты имел в виду именно то, что все 1-е имеют 3000 статус
В прицнипе твоя цепочка верная, но следует учитывать, что если 3000-й снаряд сталкивается с чем-то, не важно, через itr или bdy, он всё равно уничтожится, будь то 10-й или 30-й, так что нужно пересоздавать их в этих кадрах, вероятно, ссылкой на "продолжение" полета.


А теперь мой джедайский вклад и быстрая роспись:


шар 1, самый слабый (выбрать статус можно 3000, взаимно уничтожается с другими шарами 1)
- имеет особое body X действенный только для снарядов
- имеет уникальный ITR для повреждения персонажей, все персонажи должны иметь эквивалентный bdy для того, чтобы такие снаряды их поражали

шар 2, чуть сильнее (статус 3000, который при столкновении пересоздает сам себя n-число раз, задаваемое в коде. Шар 1 заспамится копиями и будет сломлен, а если встретит шар 2, подобный себе, взаимоуничтожатся)
- имеет особое body X действенный только для снарядов
- имеет уникальный ITR для повреждения персонажей, все персонажи должны иметь эквивалентный bdy для того, чтобы такие снаряды их поражали

шар 3, очень сильный (3005\3006, уничтожит любой предыдущий, так как статусы 3005\3006 доминируют над 3000 по определению)
- имеет особое body X действенный только для снарядов
- имеет уникальный ITR для повреждения персонажей, все персонажи должны иметь эквивалентный bdy для того, чтобы такие снаряды их поражали

шар 4, максимально сильный (3005\3006, уничтожит себе подобный или шар 3, но он пересоздается n-число раз, отчего даже после взаимного уничтожения его копия продолжит путь, прям как и в описании шара 2)
- имеет особое body X действенный только для снарядов
- имеет уникальный ITR для повреждения персонажей, все персонажи должны иметь эквивалентный bdy для того, чтобы такие снаряды их поражали

шар 5, нереально сильный (3005\3006, уничтожит себе подобный, а так же шар 3 или шар 4 при столкновении, однако НЕ ИМЕЕТ bdy\itr для обычных снарядов, как указано выше, у других подтипов, поэтому такой снаряд будет пролетать насквозь всех меньших собратьев. Чем он их уничтожает, спросите вы? Он в полете генерирует "змейку" из невидимых снарядов 3005 статуса, с 0 injury, которые заставляют с собой столкнуться другие снаряды от body X (для уничтожения низших) и body y (уничтожения равных), тем самым уничтожившись. Таким образом 5-й снаряд будет просто выглядеть как терминатор, который проходит всё насквозь, кроме целей-персонажей. )
- имеет особое body Y действенный только для ДАННОГО снаряда
- имеет уникальный ITR для повреждения персонажей, все персонажи должны иметь эквивалентный bdy для того, чтобы такие снаряды их поражали

з.ы. я расписал градацию из 5 снарядов, хотя в целом можно растягивать и растягивать, но в идеале градации не должно быть больше 3-4, это уже скорее правило гейм-дизайна. Игроки устанут запоминать множество всего.
Не забываем, что баланс - это когда все равны, либо на каждое действие есть противодействие, либо ещё что.

Вместо вариантов выше лучше делать так, чтобы уровней доминанта было не больше 3-4 (да, уже говорил), но при этом баланс строился не на них, а на возможности всегда сделать нечто более мощное, чем противник, и превзойти его. Допустим в вас выпускают шар 2, тогда вам надо выпустить шар 3, но дело в том, что у вас может его не быть, например. Поэтому лучше давать возможность игрокам усилить его, допустим, в зависимости от хп, или же просто с использованием окружающей среды (например, поджигания шаров). Все такие гибкости и нюансы сделают вашу игру в разы интереснее, чем таблица доминантов из шаров.

Вы можете много проблем восприятия о том, какой снаряд сильнее, решить спец-жффектами, поэтому не обязательно сильно извращаться.
Если где-то накосячил - извините, 15 минут как проснулся.

Да, я такой унылый, что опять вмешался вопросом о балансе и дизайне в тему кода, ну хотя бы кирпичами не кидайте.

Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of tan levels in your blood.
25.12.13 15:23 | #4

Репутация: 12
Постов: 362
Ну лучше меня оформил)
ERKD team togever NTLH FOREVER!
25.12.13 18:16 | #5

Репутация: 416
Постов: 8072
Ты хорошую тему поднял.
Я тебе вот не показывал наброски своего мода, но вроде говорил, как я реализовывать сопротивление к урону собрался, м?
Примерно отсюда ноги в моей логике и растут - делать разницу в bdy и itr

Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of tan levels in your blood.
Фан Форум для LF'айтеров » Игрострой » Модострой LF2 » Руководства и База знаний » Столкновение объектов(без длл) (У вас нет длл? Тогда мы идем к вам!)
  • Страница 1 из 1
  • 1
Поиск: