Среда, 18 Сентября 2019, 22:36

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

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

Создание физики для платформера в game maker
Здравствуйте!
Урок по созданию физики в платформере, также увидим работу с переменными (где мы это и закрепим), назовём эту физику гравитационной системой.
И так давайте начнём. Включите расширенный режим вашего Game Maker, создайте новый скрипт (в папке scripts) и назовите его physics_scr.
И пропишите следующее:

Код
i_count := 0 // устанавливает счётчик цикла.
if vertical_speed > 0 then // делаем движение вниз
begin while i_count < vertical_speed do / / Начало цикла.
begin if place_free(x,y+0.5) then // Убедитесь, если место твёрдое вы стоите.
begin y+=0.1 //Пространственное место чтобы двигаться вниз
sprite_index := down_sprite / / Изменение спрайта вниз.
end; i_count+=0.1 // Увеличиваем счетчик цикла.
end; end else if vertical_speed < 0 then // Проверяем, чтобы увидеть, есть ли перемещения вверх.
begin while i_count > vertical_speed do // Начало цикла.
begin if place_free(x,y-0.5) then
begin y-=0.1 / /Прыжок вверх
sprite_index := up_sprite// изменяем спрайт
end else begin vertical_speed := 0 //прекращает движение вверх, и падаем вниз
end; i_count-=0.1 // Увеличиваем счетчик цикла.
end; end; if place_free(x,y+0.5) then // Проверяем, чтобы увидеть, если есть что-либо ниже вас.
begin vertical_speed+=gravity_power / / Нет ничего ниже вы тем самым увеличить Вертикальную скорость.
end else begin vertical_speed := 0 / / Существует что-то ниже вы останавливаете вертикальную скорость.
jump_left := jump_amount / / Позволяет прыгать.
if not keyboard_check(ord('A')) and not keyboard_check(ord('D')) and not keyboard_check(ord('S')) then sprite_index := still_sprite end;


Со скриптом разобрались теперь перейдите к объекту героя, и в событии Create объекта вставьте переменные:
Код
gravity_power := 0.4
jump_height := 4
jump_amount := 2
move_speed := 3
right_sprite := spr_right
left_sprite := spr_left
up_sprite := spr_up
down_sprite := spr_down
still_sprite := spr_still

vertical_speed := 0
jump_left := jump_amount


Сохраните код. Теперь создайте новое событие Step (Шаг) и пропишите:

Код
physics_scr() //запустим скрипт физики.


Не забудьте просмотреть коды и добавить спрайты с таким названием, иначе у вас будут высвечиваться ошибки!
Урок закончен!
Категория: Создание игр | Добавил: KaramBino (04 Декабря 2013)
Просмотров: 5385 | Комментарии: 11 | Рейтинг: 2.2/10 |
Теги: Создание физики, Притяжение, GM, физика, Game Maker, GML, Для платформера, гравитация, Простая физика, гм
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

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

Всего комментариев: 11
+0-
11 rogueliker   (14 Марта 2014 20:42)
roguelikerНе очень вышло(

+-2-
10 Ruslancho123   (11 Января 2014 14:23)
Ruslancho123Ничего не работает!!

+-1-
9 GeorgeThreeD2   (10 Декабря 2013 12:33)
Мне кажется, что необходимо ввести модерацию статей, чтобы такое УГ не проходило.

+3-
8 tomkallen   (07 Декабря 2013 14:58)
tomkallenПрежде чем выдавать чужой код за свой, стоило бы хотя бы сначала привести его в соответствие с синтаксисом, а потом понять, что
а) этот код не нужен;
б) воровать нехорошо;

+1-
7 kvestpro   (07 Декабря 2013 11:16)
kvestproНеплохо для простенькой игры. Но настоящей гравитацией здесь и не пахнет. Разве так сложно написать статью, чтобы она описывала нормальное физическое поведение тел?
Нужно учесть силу тяжести, сопротивление воздуха. Прыжки в сторону можно также описывать физическими законами.
То что здесь написано может написать человек, месяц изучающий GML

+2-
6 HellProgrammer   (06 Декабря 2013 17:18)
HellProgrammerОмг... Код, мягко говоря - полная фигня. Ты думай что писать/что пишешь. Понимаю, тебе хочется набить статей. Но пиши по нормальном хотя бы, а не говно в говне.

+2-
5 Леонид   (06 Декабря 2013 14:02)
ЛеонидПочему "{" и "}" заменены на begin и end? Разве первый способ не легче и не удобнее?. Да и чем плохи старые уроки (которых тонны уже) с применением гравитации? Не в меру всё усложнено, да и написано странно.

+4-
4 FadeBaker   (05 Декабря 2013 23:38)
Отвратительнее говнокода не видел. Глаза на лоб полезли.

+-5-
1 KaramBino   (05 Декабря 2013 06:51)
KaramBinoКак статейка?

+2-
2 stalker5889   (05 Декабря 2013 10:28)
stalker5889Ужасно. Очень.

+2-
3 stalker5889   (05 Декабря 2013 10:35)
stalker5889За такой код надо руки по шею обрубать.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • GLScene
  • Aether3D
  • EF-12: Fighting Game Maker
  • Murl
  • Ardor3D
  • Xenko
  • Stencyl
  • Mario Worker
  • Quake II
  • Astra Gift Maker
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2019 Рейтинг