Суббота, 26.05.2012, 18:20


Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [170]
Статьи об общих понятиях связанных с созданием игр
Движки и Гейммейкеры [85]
Статьи о программах для создания игр
Игры [39]
Статьи об играх, в том числе и сделанных на гейммейкерах
Софт [25]
Различные программы, в том числе в помощь игроделам
Разное [61]
Статьи, которые не вошли в определённые разделы
Наш опрос
Какой вид используется в ваших играх?
Всего ответов: 5982
Главная » Статьи » Создание игр

Ходьба по неровной поверхности в платформере в Game Maker
Всем привет! Сегодня я Вам расскажу о том, как реализовать ходьбу по неровной поверхности в плаформере. Для начала давайте рассмотрим способ данной реализации. Итак. Для работы моего способа у вас ходьба в платформере должна быть осуществлена следующим образом: при движении спрайт игрока должен отражаться соответственно направлениям, т.е. если игрок движется влево, то image_xscale = -1;, иначе image_xscale = 1;. Каким же образом мы будем перемещать игрока вдоль неровной поверхности? К нам на помощь приходят циклы. Циклом мы проверяем кажду свободную позицию впереди игрока и чуть выше, и если эта эта позиция свободна, то перемещаем туда игрока. Давайте теперь рассмотрим код.
(Данный код помещать в Step)

Code
var Dir, D, xn, yn;
if image_xscale == -1   
{Dir = 180; D = -10}
else   
{Dir = 0; D = 10}

if place_meeting(x+D, y, o_solid)
{

for(i = 0; i < 135; i += 2)
{
xn = x + lengthdir_x(speed, Dir + i);
yn = y + lengthdir_y(speed, Dir + i);
if place_free(xn, yn) {x = xn; y = yn; exit;}
}
}

В начале мы объявляем временные переменные, хранящие направление игрока и позицию впереди игрока.

Dir - напрвление
D - отражение спрайта (сторона, в которую смотрит игрок)
xn, yn - переменные, хранящие свободную позицию перед игроком.

Далее изменяем эти переменные. Если спрайт отражён влево, т.е. игрок смотрит влево, то изменяем Dir на 180 (180 - направление влево), D - присваиваем значение -10 (-10 - позиция левее). Аналогично с другим. Далее ставим проверку на столкновение с объектом. x+D - из переменной D считывается текущее направление игрока. (Лучше всего для всех твёрдых объектов создать один родительский, и проверять столкновение только с ним, потому, что проверять столкновения со всеми объектами - очень трудоёмкий процесс) И если столкновение произошло, то запускаем цикл, проверяющий все свободные позиции относительно игрока, и если эта позиция найдена, то в переменные xn, yn записываем найденную свободную позицию и ставим проверку на эту позицию, и если она свободна, то перемещаем туда игрока и выходим из цикла.

На этом урок окончен. Спасибо за внимание! До новых встреч! smile

Категория: Создание игр | Добавил: Fade (18.07.2011)
Просмотров: 2001 | Рейтинг: 4.8/6
Теги: GML, GM, Game Maker, уроки, Ходьба по неровной поверхности в пл, Платформер, Статьи по Game Maker, Туториал, Кодинг, Урок
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Ходьба по неровной поверхности в платформере в Game Maker», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемой ниже кнопкой:
Всего комментариев: 4
-3  
3 VedaViz   (12.11.2011 09:57)
все это конечно хорошо но напрягает (код). поэтому мне нравится делать это все визуально.

0  
4 TheApKoT   (24.01.2012 19:20)
Сделай визуально цикл. А потом мы тебя похвалим.

+2  
2 Tarks   (23.07.2011 22:24)
Всё, конечно, хорошо, но это сработает только для уровней, состоящих из больших блоков. Для ландшафтов типа Worms и Scorched Earth это будет чересчур ресурсоёмко. Через массив, по-моему, лучше было бы.

+1  
1 Transced   (21.07.2011 08:55)
Все понятно)))Но нет сопровождающей графики.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ссылки по теме
Поиск
10 случайных движков
Green Elf Game Engine
Byond
Oddity Engine
GameCore
Seccia
Dimension3
Stagecast Creator
Mirage RPG Creator
FIFE
O.H.R.RPG.C.E
Друзья сайта
Игровой форум GFAQ.ru Перевод консольных игр Разработка игр в СНГ Loadka.ru – загрузка файлов Игорный бизнес в России Реклама и заработок
Все права сохранены. GcUp.ru © 2008-2012 Рейтинг