![]() |
Взаимодействие персонажа и элементов массива
Всем привет! Подскажите пожалуйста решение проблемы.
Учусь делать платформер, сделал персонажа, научил его двигаться от нажатия игроком клавиш, теперь хочу сделать вот что: сделать мувиклип из обычного прямоугольника, который мог бы быть основой для карты, то есть платформой, кирпичиком, добавляя который на стол в нужном количестве можно было бы составить уровень - "землю", платформы, далее при загрузке кадра нужно, чтобы все копии этого мувиклипа загружались в массив, а после этого я бы сделал такую проверку: если хиттест персонажа с элементами массива с платформами отрицательный, то к y-координате игрока плюсуется такое-то число, то есть персонаж как бы падает вниз. я новичек во флеше, пытался сделать описанное выше по разным урокам, но получается такая проблема: (изначально персонаж находится, допустим, в середине экрана, а платформа/платформы в самом низу экрана) когда на экране присутствует только одна платформа, персонаж спокойно "приземляется" на нее и стоит на ней, а когда я добавляю в кадр еще одну или больше платформ из библиотеки - персонаж пролетает вниз сквозь платформы, не реагируя на них, причем чем больше платформ в кадре - тем быстрее скорость падения. Работаю в Флэш Макромедиа 8, какой экшн скрипт не знаю, учусь по урокам, настройки в программе не менял и использую то, что работает и соответствует описанию из урока. Вот что я делал: 1) в первый кадр мувиклипа snowblock (это платформа) добавлял строку Код AS1/AS2:
Код AS1/AS2:
Код AS1/AS2:
P.S.: оформил куски кода наугад, так как не знаю версию экшн скрипта, не ругайтесь. |
Интересный способ постройки уровня, первый раз такое вижу.
Используйте лучше у себя переменную для гравитаций: Код AS1/AS2:
Код AS1/AS2:
Код AS1/AS2:
|
Спасибо, оба варианта работают! Как убрать следующий баг? Он заключается в том, что персонаж приземляется:
а) в Вашем варианте ногами ниже верхней границы платформы, чем больше высота падения и ускорение - тем глубже он проходит в платформу ногами: Код AS1/AS2:
Код AS1/AS2:
|
Код AS1/AS2:
|
Сделал, работает отлично! После этого сделал столкновение справа и слева, все гуд, но не получается нормально сделать столкновение с платформой сверху, при прыжке - прыжок тормозится, но персонаж всё равно головой проходит сквозь платформу, пробовал исправить тем же приемом, что Вы посоветовали выше - не помогает. Что можете подсказать?
Вот код на данный момент: Код AS1/AS2:
|
У вас внутри human есть p4 как я понял - ноги, на которые и проверяеться столкновение с блоками. Создайте внутри human ещё такой-же регион только для головы.
|
Вложений: 1
Он есть, это p2 в коде, а p3 для столкновений сбоку, вот скрин размещения платформ, но в принципе он особой информации для решения проблемы не несет - хиттест проходит нормально - проверял переменной, состояние которой отображалось в специальном текстовом поле. p1 пока не использую.
|
Может как-то так:
Код AS1/AS2:
Код AS1/AS2:
|
Персонаж стал дергаться, пока находится сверху от платформы, а при прыжке всё равно головой проходит сквозь платформу сверху. Метод трэйс и правда удобный, особенно для проверки состояния массива.
|
Попробуйте p2 и p4 пошире сделать
|
Никаких изменений кроме перемен в движении горизонтально!
Добавлено через 30 часов 27 минут Никаких изменений, кроме изменений в передвижении горизонтально. |
| Часовой пояс GMT +4, время: 07:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.