Воскресенье, 16 Июня 2019, 02:09

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

Меню сайта
Категории каталога
Создание игр [320]
Статьи об общих понятиях связанных с созданием игр.
Программирование [71]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [125]
Статьи о программах для создания игр, уроки и описания.
Софт [28]
Различные программы, в том числе в помощь игроделам.
2D-графика [12]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [11]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [118]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [79]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какой жанр игр вам больше нравится играть?
Всего ответов: 2261
Главная » Статьи » Движки и Гейммейкеры

Game Maker - "Движимые блоки"
В некоторые платформеры крайне необходимо добавить блоки, которые можно двигать. Подразумевается прямой контакт с игроком, т.е. толкание.
Мы расмотрим довольно простой пример реализации.

С чего начать?
Давайте для начала создадим землю на которой будут располагаться игрок и сами блоки.

obj_ground


Представляет из себя твердый, видимый обьект. "События" не добавляем.

Теперь поместим нашего персонажа.

obj_player


STEP

Code
gravity_direction=270; // гравитация
if place_free(x,y+1)
gravity = 1;
else
gravity = 0;

if keyboard_check(vk_up) {if !place_free(x,y+1){vspeed -= 10;}} // прыжок
if keyboard_check(vk_left) {if place_free(x-3,y){x-=3}}  
if keyboard_check(vk_right) {if place_free(x+3,y){x+=3}}

COLLISION with object "obj_ground"

Code
if place_free(x,y+vspeed)=false{vspeed=0 move_contact_solid(270,10);} // контакт с землей

Остался движимый блок. Твердый, видимый обьект.
Родитель: obj_ground (ставим родителя, чтобы блоки не налазили один на другой)

obj_block

STEP

Code
if place_free(x,y+1)
gravity=1;
else  
gravity=0;

// Когда игрок подобрался вплотную к блоку и при этом нажата одна из клавиш движения - происходит передвижение оного.

if keyboard_check(vk_right) and place_meeting(x-3,y,obj_player) x+=3; // толкаем блок вправо на 3 пикселя
if keyboard_check(vk_left) and place_meeting(x+3,y,obj_player) x-=3; // толкаем блок влево на 3 пикселя

COLLISION with object "obj_ground"

Code
if place_free(x,y+vspeed)=false{vspeed=0 move_contact_solid(270,10);} // контакт с землей

По желанию - уничтожение игрока если блок упал на голову.

COLLISION with object "obj_player"

Code
if vspeed > 0 and y < other.y // если вертикальная скорость больше нуля и персонаж ниже блока.
with (other) instance_destroy () // уничтожить игрока

Примечание:

Поменяв знаки (+/-) в проверках place_meeting - можно заставить персонажа не пихать камень вперед, а тянуть за собой.

Категория: Движки и Гейммейкеры | Добавил: AGDMFG (15 Января 2011)
Просмотров: 9504 | Комментарии: 4 | Рейтинг: 4.9/7 |
Теги: урок, платформер, блоки, Game Maker, физика, GML, конструктор игр, Статья, Скрипты, гм
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Game Maker - "Движимые блоки"», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 4
+1-
3 Spihex   (28 Апреля 2012 17:35)
SpihexЧто ты наделал?! Сейчас будет очередной бум на разработку игр с квадратиками!
*ой, так это давно было smile

+1-
4 AGDMFG   (29 Апреля 2012 00:22)
AGDMFGТогда и начали создавать игры про квадратики smile

+0-
2 Shevron_7   (28 Апреля 2012 17:25)
Shevron_7

+1-
1 GameMix   (27 Января 2011 13:48)
GameMixСпасибо за статью! smile

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • TURBU
  • GLHexen
  • Cocos2d
  • Raycasting Game Maker
  • FBA
  • Quest Creator
  • nGENE
  • CraftStudio
  • PixelLight
  • Game Creator
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2019 Рейтинг