Руководство по созданию флеш игры. Часть 2
Если вы уже успели ознакомиться и усвоить первую часть руководства по созданию флеш игры, то уже умеете создавать героя, готового к приключениям в рамках разработанного вами игрового пространства. Вы научили вашего героя бегать, летать и падать, теперь можно проверить эти навыки в флеш игре, создав вашему персонажу ряд препятствий и коллизий, которые он будет преодолевать при помощи геймера.
Во второй части руководства речь пойдет о создании преград для героя flash игры.
Создаем границы.
Любая флеш игра ограничивается границами, не позволяющими персонажу выходить за установленные разработчиком рамки. Для того чтобы появились границы или стены в игре, нужно создать переменную под названием «wall». Напомним, что мы создаем игру с волейбольным мячом, значит, герой — мяч не может по сюжету выходить за границы. Чтобы добиться этого результата, нужно прописать следующий скрипт, а точнее actionscript:
Как это работает? Вы добавляете 28-ю и 33-ю строчки. Строчка 28-я отвечает за касание героем установленной границы, где символы _x и _y обозначают, что все коллизии для героя происходят только в его центре. В противном случае, если вы выберете другие точки соприкосновения героя с преградами, игра не будет такой эффектной, как нужно.
Помните, что строчки с 29-й по 32-ю отвечают за сброс позиции персонажа в том случае, если он вышел за границы (умер) в игре.
— управление
Учим героя собирать бонусы — первый шаг.
У нашего героя должны быть не только преграды, но и определенная миссия — то, ради чего персонаж проходит круги игрового ада, если хотите, некий квест, выражаясь языком онлайн игр. Поскольку ваш герой напоминает желтый волейбольный мяч, то его миссия – это сбор бонусов. Чтобы эти самые бонусы собирались, создайте переменную под названием «bonus»:
Внимательно изучите строчки с 34-й по 36-ю. Строка под номером 34 – там текст повторяет текст, прописанный ранее для создания игровых границ. Строка 35 – выполняет функцию, отвечающую за передвижение бонуса в нужную позицию, как только герой ее касается. Можете попробовать заставить мяч собрать бонусы.
— управление
Не получается? Процесс идет с багами и выглядит не очень красиво? Так и должно быть. Ведь метод центрового соприкосновения героя с коллизиями, который использовался для границ, не подходит для сбора бонусов. Поэтому переходим ко второму шагу.
Учим героя собирать бонусы — второй шаг.
Смело меняйте в коде сроку под номером 34:
Таким образом вы заставили коллизии флеш игры распространиться не только на центр, но и на всего вашего персонажа. Что позволит игроку собирать бонусы, просто находясь вблизи от них, без стопроцентного соприкосновения центра героя с бонусом. Как это работает? Инструменты Flash вычисляют коллизии/бонуса при помощи заданных параметров прямоугольника, расположенного вокруг героя, таким образом, все объекты, которые попадают в этот прямоугольник, возвращают нужное значение под названием true.
— управление
И хоть теперь процесс сбора бонусов выглядит куда аккуратнее и идет без очевидных багов, все равно остались недочеты, которые и исправит третий, заключительный шаг.
Учим героя собирать бонусы — третий шаг.
Чтобы избавиться от всех багов в процессе сбора героем бонусов, нужно создать еще один movieclip, назвав его «hero_hit», а затем поместить его в movieclip вашего персонажа, прямо в центр героя, допустим, этим послужит маленький красный кружок. Далее выполните hit-тест на «hero_hit». Меняйте размер «hero_hit» так, как хотите. Помните, чем меньше будет размер hero_hit", тем сложнее герою будет собирать бонусы.
Внимательно посмотрите на строку 34, теперь там поменялось значение – this заменили на this.hero_hit.
— управление
Теперь ваш герой умеет контактировать с преградами, выполняя игровые функции по сбору бонусов. В следующей части руководства по созданию флеш игры речь пойдет о более сложном взаимодействии героя с игровым пространством. Продолжение следует…
Другие части статьи «Создаем флеш игру»:
Создаем флеш игру — Часть 1
Создаем флеш игру — Часть 3
Создаем флеш игру — Часть 4
Создаем флеш игру — Часть 5
Во второй части руководства речь пойдет о создании преград для героя flash игры.
Создаем границы.
Любая флеш игра ограничивается границами, не позволяющими персонажу выходить за установленные разработчиком рамки. Для того чтобы появились границы или стены в игре, нужно создать переменную под названием «wall». Напомним, что мы создаем игру с волейбольным мячом, значит, герой — мяч не может по сюжету выходить за границы. Чтобы добиться этого результата, нужно прописать следующий скрипт, а точнее actionscript:
onClipEvent (load) {
yspeed = 0;
xspeed = 0;
wind = 0.00;
power = 0.65;
gravity = 0.1;
upconstant = 0.75;
friction = 0.99;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
xspeed = xspeed-power;
}
if (Key.isDown(Key.RIGHT)) {
xspeed = xspeed+power;
}
if (Key.isDown(Key.UP)) {
yspeed = yspeed-power*upconstant;
}
if (Key.isDown(Key.DOWN)) {
yspeed = yspeed+power*upconstant;
}
xspeed = (xspeed+wind)*friction;
yspeed = yspeed+gravity;
_y = _y+yspeed;
_x = _x+xspeed;
_rotation = _rotation+xspeed;
if (_root.wall.hitTest(_x, _y, true)) {
xspeed = 0;
yspeed = 0;
_x = 120;
_y = 120;
}
}Как это работает? Вы добавляете 28-ю и 33-ю строчки. Строчка 28-я отвечает за касание героем установленной границы, где символы _x и _y обозначают, что все коллизии для героя происходят только в его центре. В противном случае, если вы выберете другие точки соприкосновения героя с преградами, игра не будет такой эффектной, как нужно.
Помните, что строчки с 29-й по 32-ю отвечают за сброс позиции персонажа в том случае, если он вышел за границы (умер) в игре.
— управлениеУчим героя собирать бонусы — первый шаг.
У нашего героя должны быть не только преграды, но и определенная миссия — то, ради чего персонаж проходит круги игрового ада, если хотите, некий квест, выражаясь языком онлайн игр. Поскольку ваш герой напоминает желтый волейбольный мяч, то его миссия – это сбор бонусов. Чтобы эти самые бонусы собирались, создайте переменную под названием «bonus»:
onClipEvent (load) {
yspeed = 0;
xspeed = 0;
wind = 0.00;
power = 0.65;
gravity = 0.1;
upconstant = 0.75;
friction = 0.99;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
xspeed = xspeed-power;
}
if (Key.isDown(Key.RIGHT)) {
xspeed = xspeed+power;
}
if (Key.isDown(Key.UP)) {
yspeed = yspeed-power*upconstant;
}
if (Key.isDown(Key.DOWN)) {
yspeed = yspeed+power*upconstant;
}
xspeed = (xspeed+wind)*friction;
yspeed = yspeed+gravity;
_y = _y+yspeed;
_x = _x+xspeed;
_rotation = _rotation+xspeed;
if (_root.wall.hitTest(_x, _y, true)) {
xspeed = 0;
yspeed = 0;
_x = 120;
_y = 120;
}
if (_root.bonus.hitTest(_x, _y, true)) {
_root.bonus._x = Math.random()*400+50;
}
}Внимательно изучите строчки с 34-й по 36-ю. Строка под номером 34 – там текст повторяет текст, прописанный ранее для создания игровых границ. Строка 35 – выполняет функцию, отвечающую за передвижение бонуса в нужную позицию, как только герой ее касается. Можете попробовать заставить мяч собрать бонусы.
— управлениеНе получается? Процесс идет с багами и выглядит не очень красиво? Так и должно быть. Ведь метод центрового соприкосновения героя с коллизиями, который использовался для границ, не подходит для сбора бонусов. Поэтому переходим ко второму шагу.
Учим героя собирать бонусы — второй шаг.
Смело меняйте в коде сроку под номером 34:
if (_root.bonus.hitTest(this)) { Таким образом вы заставили коллизии флеш игры распространиться не только на центр, но и на всего вашего персонажа. Что позволит игроку собирать бонусы, просто находясь вблизи от них, без стопроцентного соприкосновения центра героя с бонусом. Как это работает? Инструменты Flash вычисляют коллизии/бонуса при помощи заданных параметров прямоугольника, расположенного вокруг героя, таким образом, все объекты, которые попадают в этот прямоугольник, возвращают нужное значение под названием true.
— управлениеИ хоть теперь процесс сбора бонусов выглядит куда аккуратнее и идет без очевидных багов, все равно остались недочеты, которые и исправит третий, заключительный шаг.
Учим героя собирать бонусы — третий шаг.
Чтобы избавиться от всех багов в процессе сбора героем бонусов, нужно создать еще один movieclip, назвав его «hero_hit», а затем поместить его в movieclip вашего персонажа, прямо в центр героя, допустим, этим послужит маленький красный кружок. Далее выполните hit-тест на «hero_hit». Меняйте размер «hero_hit» так, как хотите. Помните, чем меньше будет размер hero_hit", тем сложнее герою будет собирать бонусы.
onClipEvent (load) {
yspeed = 0;
xspeed = 0;
wind = 0.00;
power = 0.65;
gravity = 0.1;
upconstant = 0.75;
friction = 0.99;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
xspeed = xspeed-power;
}
if (Key.isDown(Key.RIGHT)) {
xspeed = xspeed+power;
}
if (Key.isDown(Key.UP)) {
yspeed = yspeed-power*upconstant;
}
if (Key.isDown(Key.DOWN)) {
yspeed = yspeed+power*upconstant;
}
xspeed = (xspeed+wind)*friction;
yspeed = yspeed+gravity;
_y = _y+yspeed;
_x = _x+xspeed;
_rotation = _rotation+xspeed;
if (_root.wall.hitTest(_x, _y, true)) {
xspeed = 0;
yspeed = 0;
_x = 120;
_y = 120;
}
if (_root.bonus.hitTest(this.hero_hit)) {
_root.bonus._x = Math.random()*400+50;
}
}
Внимательно посмотрите на строку 34, теперь там поменялось значение – this заменили на this.hero_hit.
— управлениеТеперь ваш герой умеет контактировать с преградами, выполняя игровые функции по сбору бонусов. В следующей части руководства по созданию флеш игры речь пойдет о более сложном взаимодействии героя с игровым пространством. Продолжение следует…
Другие части статьи «Создаем флеш игру»:
Создаем флеш игру — Часть 1
Создаем флеш игру — Часть 3
Создаем флеш игру — Часть 4
Создаем флеш игру — Часть 5





Комментарии (2)
RSS свернуть / развернутьValboy
qwin
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.