Урок 1. Основы создания. В этом уроке мы рассмотрим, как реализовать ходьбу, поворот за мышью и стрельбу. Итак, приступим! Создаём спрайт игрока, пули и стены: s_player s_bullet s_wall P.S: Спрайты должны быть повёрнутыми вправо!
Теперь создадим 3 соответствующих объекта и назначим им только что созданные спрайты: o_player o_bullet o_wall
Далее открываем объект o_player, и в Step пишем код:
Code
image_angle = point_direction(x,y,mouse_x,mouse_y); if (keyboard_check(ord('W'))) y -= 5; if (keyboard_check(ord('S'))) y += 5; if (keyboard_check(ord('A'))) x -= 5; if (keyboard_check(ord('D'))) x += 5;
Первая строка определяет направление от середины игрока до курсора и присваивает значение к углу поворота спрайта. Вторая строка проверяет нажатие клавиши W, и если условие истина, то смещаем игрока вверх на 5 пикселей. Аналогично с другими проверками, только смещения разные, в зависимости от нажатой клавиши. P.S: Y- (вверх), Y+ (вниз), X- (влево), X+ (вправо)
Теперь ваш персонаж умеет ходить и поворачиваться в сторону мыши! Можете проверить. Для этого создаёте комнату, поместите туда объект игрока и нажмите на зелёный треугольник для запуска. Работает! Хорошо, теперь давайте создадим препятствия, через которые игрок не мог бы проходить. Откройте раннее созданный объект стены o_wall. Поставьте ему галочку в Solid. Этим вы делаете его "твёрдым". Это нужно для столкновений. Теперь в объекте игрока создайте событие столкновения со стеной и впишите код:
Code
x = xprevious; y = yprevious;
Что же дают эти 2 команды? Они возвращают объект на предыдущую позицию, благодаря чему не дают ему смещаться дальше. Также расставьте стены по комнате и протестируйте на работоспособность. Теперь приступим к стрельбе. Нам нужно, чтобы пуля летела по направлению мыши, а также поворачивалась по направлению. Для этого в Create у пули прописываем код:
mouse_x - координата мыши по оси X mouse_y - координата мыши по оси Y 10 - скорость полёта пули Вторая строка поворачивает спрайт в сторону полёта.
С пулей разобрались. Теперь нужно осуществить стрельбу. Открываем объект игрока, создаём событие Global left pressed и пишем код:
Code
instance_create(x, y, o_bullet); //создаёт объект пули в координатах игрока
Протестируйте игру! Как видите, пули пролетают сквозь стен, это можно легко исправить. В объекте пули создайте событие столкновения со стеной и впишите такой код:
Code
instance_destroy(); //уничтожаем пулю при столкновении с объектом стены
Вот, пожалуй, всё. На этом урок окончен, спасибо за внимание!
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Создание TDS на Game Maker. Урок 1.», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
Скажите пожалуйста , как сделать стрельбу по направлению мышки без поворотов ? . Тоесть персонаж стреляет туда куда смотрит мышка но не поворачивается за ней
нормальная такая статья, не больше, не мешьше. вообще это уже традиция. освоил гм - начал клепать статью по созданию ТДС -_- автор, сделай статью по созданию чего-то интересного, например более-менее годного AI или светового движка. гм же ТДС'ками и платформерами не ограничивается!