Простой платформер
Создаём простой платформер!
[Исходник] [Скрипт] [Комментарии]

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

Вот несколько текстур для примера (они могут не совпадать с текстурами из видео)


 


Часть I

Часть II
Часть III
Часть IV


Примечания

Код персонажа

Код на первом кадре

Код на каждой монетке

Код на каждом препятствии

Код на камере

Где char - имя экземпляра вашего персонажа (или объекта, за которым нужно следить). Цифру 4 также можно заменить, ее величина обратно пропорциональна скорости движения камеры за вашим объектом, т.е. соответственно, чем больше цифра, тем медленнее камера движется и наоборот.



Важные Instance Name!

Instance nameКому принадлежит
charГерой
groundУровень (т.е земля)
vcamКамера (VCam)
coins (внутри VCam)Динамическое текстовое поле показывающее кол-во монеток
lives (внутри VCam)Динамическое текстовое поле показывающее кол-во жизней
portalПортал выхода
play_btn
back_btn
Кнопки для меню


Также не забудьте правильно назвать сцены!

gamewin - сцена выигрыша
gameover - сцена проигрыша

Ещё одной важной деталью является VCam , которая следит за вашим игроком.
Вы можете скачать её удалённо по этой ссылке




Комментарии


21.06.2014
YaahooO пишет:
У меня всё получилось кроме 1, когда герой подходит к стене его выкидывает "на верх этой стены", кто нибудь сталкивался с этим?
25.06.2014
Doctor отвечает:
Это значит ошибка где-то в куске кода, который отвечает за коллизию игрока со стенами.

Проверь ещё названия переменных тут:

if (ground.hitTest(_x, _y+5, true)) {
touchingGround = true;
} else {
touchingGround = false;
}


И тут:

if (ground.hitTest(_x+(_width/2), _y-(_height/2), true)) {
_x -= speed;
}
if (ground.hitTest(_x-(_width/2), _y-(_height/2), true)) {
_x += speed;
}
if (ground.hitTest(_x, _y-(height), true)) {
grav = 3;
}


Вполне возможно, что ты перепутал где-то знак (минус с плюсом), либо какие-то оси перепутал (X вместо Y). Будь внимателен wink

P.S. Советую ознакомится с более актуальной версией этого урока
13.10.2013
Андрей пишет:
А сорри Док, я погуглил, нашел ответ. Для тех у кого та же проблема, нажмите на прямоугольник (камеру) и в его действиях напишите:

onClipEvent (enterFrame) {
_y += (_root.char._y - _y) / 4;
_x += (_root.char._x - _x) / 4;
}

У меня после этого все стало работать.
13.10.2013
Андрей пишет:
А  имя персонажа (char) не надо вписывать в код камеры?Просто она (камера) не перемещается за персонажем, а стоит на месте.
18.10.2013
Doctor отвечает:
Очевидно, что надо вписывать имя персонажа в код для камеры biggrin Она же должна за кем-то следовать
26.09.2013
Martin пишет:
Доброго времени суток, уроки очень профессиональные, жаль исходняки не все. Делаю платформер вашим способом, не получается сделать эффект с камерой плавающих уровней(земель), Камеру скачал, персонажа оживил... Второй момент. Заметил текст кодов в кадре отличается от привидёных в стате под видео. Спасибо за профессиональные уроки и заранее благодарен в помоще.
27.09.2013
Doctor отвечает:
Спасибо за положительный отзыв, действительно, исходники не все, так как раньше я их не сохранял. По поводу платформера, то не я придумал, как его создавать, поэтому можно поискать на YouTube туториалы или погуглить, я уверен у вас всё получится, еще раз спасибо за то, что остаётесь со мной :DD
26.09.2013
NoX пишет:
Док, очень хотелось бы посмотреть урок по созданию платформера со звуком! точнее, с твоим голосовым сопровождением в виде комментариев и разжевываний всех действий!))
27.09.2013
Doctor отвечает:
Да, это было бы вполне полезно. Но руки никак не дойдут, занят учебой. Как будет свободное время, так сразу возьмусь за создание урока ;D
27.06.2013
ДЕНИС пишет:
доктор куеб , ты лучший , у тебя самые лучшие уроки по as 2.0 , жду когда ты начнешь учить as 3.0
01.07.2013
Doctor отвечает:
Спасибо больше) 
Насчёт AS3 боюсь придётся долго ждать  biggrin