Простой платформер
Создаём простой платформер!
[Исходник] [Скрипт] [Комментарии]
Часть I
Код персонажа
Код на первом кадре
Код на каждой монетке
Код на каждом препятствии
Код на камере
Где char - имя экземпляра вашего персонажа (или объекта, за которым нужно следить). Цифру 4 также можно заменить, ее величина обратно пропорциональна скорости движения камеры за вашим объектом, т.е. соответственно, чем больше цифра, тем медленнее камера движется и наоборот.
Также не забудьте правильно назвать сцены!
[Исходник] [Скрипт] [Комментарии]
В этой серии уроков мы создадим простой платформер на флеш. У нас будет один персонаж, ловушка и монетки, а также камера которая будет непрерывно следить за игроком. В дизайне уровней будут использованы текстуры травы, камня и песка.
Вот несколько текстур для примера (они могут не совпадать с текстурами из видео)
Часть 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). Будь внимателен
P.S. Советую ознакомится с более актуальной версией этого урока
Проверь ещё названия переменных тут:
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). Будь внимателен
P.S. Советую ознакомится с более актуальной версией этого урока
13.10.2013
Андрей пишет:
А сорри Док, я погуглил, нашел ответ. Для тех у кого та же проблема, нажмите на прямоугольник (камеру) и в его действиях напишите:
onClipEvent (enterFrame) {
_y += (_root.char._y - _y) / 4;
_x += (_root.char._x - _x) / 4;
}
У меня после этого все стало работать.
onClipEvent (enterFrame) {
_y += (_root.char._y - _y) / 4;
_x += (_root.char._x - _x) / 4;
}
У меня после этого все стало работать.
13.10.2013
Андрей пишет:
А имя персонажа (char) не надо вписывать в код камеры?Просто она (камера) не перемещается за персонажем, а стоит на месте.
18.10.2013
Doctor отвечает:
Очевидно, что надо вписывать имя персонажа в код для камеры Она же должна за кем-то следовать
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 боюсь придётся долго ждать
Насчёт AS3 боюсь придётся долго ждать