Анімація та рух підйомника на леджі (2d платформер)


11

Намагаючись прийняти рішення щодо впровадження механіки підйому на уступ для платформи-2d, який керується фізикою. Який найкращий спосіб зробити це, не надто складно?

Поки я розумію (хобі тут не професійний), є кілька варіантів, серед яких:

  1. Застосовуйте керовану силу до жорсткого тіла на осі y, поки положення кореня знаходиться трохи вище положення руки, потім прикладіть достатню силу на вісь x, щоб персонаж стояв на платформі. У той же час якось синхронізуйте це з анімацією (схилами).

    Зауваження : рух тут легкий і навіть може управлятися призматичним ковзним суглобом, але я не впевнений, як би я підтримував анімацію (хребет) у синхронізації з рухом.

  2. Анімація кореневого руху, яка визначає позицію кореня символу. Телепортуйте жорстке тіло, коли повний і сподіваюся, box2d все ще може правильно вчасно реагувати на будь-яке зіткнення, якщо якісь об'єкти падають з неба.

    Зауваження : звучить простіше насправді анімувати, але не впевнений, чи не зіткнуться я з будь-якими проблемами з часом виконання хребта, box2d або пізнішими вниз по лінії, що рухаються платформами та різними платформами висоти.

  3. Застосуйте обмеження ІК програмно на руках, щоб зафіксувати їх на місці, і перейдіть до обертання кісток вручну або застосуйте невеликі попередньо встановлені (кілька клавіш / кадрів) анімації, одночасно приклавши необхідну силу до жорсткого тіла одночасно.

    Зауваження : схоже, що це дало б максимальний контроль гравцеві, але мені здається, що складно реалізувати на своєму рівні, не точно знаючи, з чого я б почав.

Заздалегідь дякую за будь-який вклад!

FYI: Це двигун на базі ECS (libgdx + ashley) з box2d. Захоплення виступу вже реалізовано як окрема система, тому тут можна припустити, що персонаж вже здатний звисати з уступу будь-якої висоти.

Відповіді:


1

я вважаю, що вам потрібно більше варіантів дизайну, перш ніж ви зможете прийняти правильне рішення, зокрема, що може статися з персонажем, поки він висить / лазить?

оскільки ви сказали, що гра заснована на фізиці, я припускаю, що у вас може бути скеля, яка падає на голову під час висіння або піднімання, тож, якщо це так, я вважаю, що перехід на рутмоут може бути найпростішим рішенням, вам просто потрібно оживити скалолазання , під час сходження він перебуває у дещо іншому висячому стані. Єдина відмінність полягає в тому, що ви не можете ініціювати скалолазання.

Тепер це передбачається, що у вас вся ситуація з висінням під контролем, це означає, що якщо ви підвішені і відбувається будь-яка взаємодія, персонаж реагує належним чином.

Тоді все, що вам потрібно зробити, - це повернути стан свого персонажа в режим очікування, коли анімація сходження завершена.


0

Ви можете просто перемістити transform.y вгору n кількість разів, поки ноги не будуть на виступі і тимчасово забути фізику, я думаю, це буде добре працювати, ви завжди можете виміряти відстань між падаючими предметами та гравцем, якщо зіткнення не вдасться під час трансформаційний переклад. щоб переконатися, що зіткнення відбулося ..


0

Якщо гравець притискається до предмету, який може підніматися, тоді дозволяйте переміщати його по осі Y вгору / вниз. Під час цього стану переконайтесь, що він не може рухатися по осі X. Під час переміщення ви можете зателефонувати на Animation.Sample на анімацію підйому, щоб переконатися, що точка в анімації відповідає відстані, яку підняв, а не намагатися встигнути все.


0

На мою думку, "найкращим" способом було б: Коли ви виявите можливе сходження, тимчасово заблокуйте позицію гравця. Використовуйте анімацію з рухом root і заблокуйте елементи керування. Коли анімація закінчена, розблокуйте положення гравців та елементи керування.

Звичайно, якщо ви будете робити це безрозсудно, це виглядатиме дивно АБО буде потрібна піксель ідеальна точність. Але ви можете цього уникнути - дайте гравцеві деякий діапазон, куди він може піднятися, і лерпом швидко налаштуйте позицію на ідеальне місце.


0

Чи може гравець вільно рухатися горизонтально, поки він знаходиться в повітрі (управління повітрям)? Якщо так, я просто застосував би відповідну кількість вертикальної сили, щоб підняти ноги гравця над платформою і дозволити гравцеві рухатися горизонтально на нього.

Це дасть гравцеві більше контролю над персонажем і відкриє більше варіантів руху - Наприклад, якщо гравець (підвісившись на виступі) хотів стрибати, стріляти в щось на платформі, а потім впасти назад і знову захопити виступ, поки снаряд рухався до своєї цілі, щоб уникнути будь-яких снарядів, мета яких вистрілила назад у гравця. Така тактика може стати цікавою стратегією боротьби з босом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.