Показать сообщение отдельно
Старый 29.12.2011, 01:31
Обломов вне форума Посмотреть профиль Отправить личное сообщение для Обломов Найти все сообщения от Обломов
  № 1  
Ответить с цитированием
Обломов

Регистрация: Dec 2011
Сообщений: 7
Cool Взаимодействие персонажа и элементов массива

Всем привет! Подскажите пожалуйста решение проблемы.
Учусь делать платформер, сделал персонажа, научил его двигаться от нажатия игроком клавиш, теперь хочу сделать вот что:
сделать мувиклип из обычного прямоугольника, который мог бы быть основой для карты, то есть платформой, кирпичиком, добавляя который на стол в нужном количестве можно было бы составить уровень - "землю", платформы, далее при загрузке кадра нужно, чтобы все копии этого мувиклипа загружались в массив, а после этого я бы сделал такую проверку: если хиттест персонажа с элементами массива с платформами отрицательный, то к y-координате игрока плюсуется такое-то число, то есть персонаж как бы падает вниз.
я новичек во флеше, пытался сделать описанное выше по разным урокам, но получается такая проблема:
(изначально персонаж находится, допустим, в середине экрана, а платформа/платформы в самом низу экрана)
когда на экране присутствует только одна платформа, персонаж спокойно "приземляется" на нее и стоит на ней, а когда я добавляю в кадр еще одну или больше платформ из библиотеки - персонаж пролетает вниз сквозь платформы, не реагируя на них, причем чем больше платформ в кадре - тем быстрее скорость падения.
Работаю в Флэш Макромедиа 8, какой экшн скрипт не знаю, учусь по урокам, настройки в программе не менял и использую то, что работает и соответствует описанию из урока.
Вот что я делал:
1) в первый кадр мувиклипа snowblock (это платформа) добавлял строку
Код AS1/AS2:
_parent.addBox(this);
2) в кадре игры, в самом начале написал:
Код AS1/AS2:
var boxes = [];
addBox = function (obj) {
	boxes.push(obj);
}
3) в кадре игры написал:
Код AS1/AS2:
function checkHitPlatform() {
	var i = boxes.length;
	while (i--) {
		var curB = boxes[i];
		if (!curB.hitTest(human.p4)) {
			human._y += 15;
		}
	}
}
где human - инстенс нэйм персонажа, а p4 - инстенс нейм мувиклипа для проверки столкновения снизу, находящийся в мувиклипе персонажа.
P.S.: оформил куски кода наугад, так как не знаю версию экшн скрипта, не ругайтесь.