Пятница, 08 Ноября 2024, 11:42

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
[Урок]Создание прыжка
BlackSeriousFiveДата: Понедельник, 18 Марта 2013, 14:54 | Сообщение # 1
был не раз
Сейчас нет на сайте
Всем привет!Сегодня я расскажу как сделать прыжок в Game Maker.
Начнем?
Сначала делаем объект нашего персонажа...

Добавляем событие "создание".Добавляем действие Set the Gravity , и в окне direction пишем 270,а в окне gravity - 1 .

Теперь создаем новый объект,это у нас будет стена и делай нашу стену твёрдой.
Снова возвращаемся в наш объект.Добавляем событие "Столкновение" и выбираем нашу стенку.Добавляем в действия скрипт:
Код
vspeed = 0;

Далее мы делаем прыжок.
Создаем новое событие "Клавиатура" и выбираем на какую клавишу у нас будет прыжок.Добавляем в действия Test Expression .Пишем в окно скрипт:
Код
place_free(x,y+1)

Ставим галочку на No(Нет).Добавляем скобки,и в скобки добавляем ещё один скрипт:
Код
vspeed = -12;


Готово!Прыжок сделан.
Осталось создать комнату и расставить объекты.
Скачать пример:Тык!


Сообщение отредактировал BlackSeriousFive - Пятница, 22 Марта 2013, 22:04
GameMixДата: Понедельник, 18 Марта 2013, 17:30 | Сообщение # 2
старожил
Сейчас нет на сайте
BlackSeriousFive, ваааау...^__^ Ты действительно считаешь, что это кому-то нужно?! Сделал бы запрыгивание на платформу сквозь неё, ещё б можно было счесть за урок.

Steel Standoff - 2D аркада.
Мои статьи
Andrey_MДата: Понедельник, 18 Марта 2013, 17:36 | Сообщение # 3
старожил
Сейчас нет на сайте
BlackSeriousFive, спасибо, я был вообще не в теме)))

ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
FargostДата: Понедельник, 18 Марта 2013, 17:45 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Блин, ну кнопки это уже не модно

StelSMaN_82Дата: Понедельник, 18 Марта 2013, 18:04 | Сообщение # 5
Master Of Game maker
Сейчас нет на сайте
На самом деле все намного сложнее.
К примеру
Цитата (BlackSeriousFive)
Добавляем событие "создание".Добавляем действие Set the Gravity , и в окне direction пишем 270,а в окне gravity - 1

Это должно быть не в "создании", а в "степе" и лучше кодом:

Идем дальше:
Цитата (BlackSeriousFive)
Снова возвращаемся в наш объект.Добавляем событие "Столкновение" и выбираем нашу стенку.Добавляем в действия скрипт:
Код
vspeed = 0;

Этого мало! Нужно добавить эту ф-цию (Хотя она немного тяжеловата для понимания.

Дальше...
Цитата (BlackSeriousFive)
Создаем новое событие "Клавиатура" и выбираем на какую клавишу у нас будет прыжок.Добавляем в действия Test Expression .Пишем в окно скрипт:
Код
place_free(x,y+1)

И... Опять не угадал biggrin
Лучше написать это:

В том, что написано выше программа смотрит, есть ли свободное место над игроком, и если есть, то игрок прыгнет. И эта ф-ция делается одним "скриптом", а не двумя, как у тебя.
И самое главное - ты забыл поставить в объекте стены, в окошечке "Solid" (Твердость, твердый) - это очень важно, ведь если этого не будет, то игрок начнет проскальзывать сквозь пол.


Помог - плюс в репу!
FadeBakerДата: Понедельник, 18 Марта 2013, 20:08 | Сообщение # 6
JavaSE Game Developer
Сейчас нет на сайте
Цитата (StelSMaN_82)
if place_free(x,y+1)  
gravity = 2  
else
gravity = 0

Опять же, много кода. Проще так:
Код
gravity = place_free(x, y + 1) * 2;


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
MrNeshДата: Понедельник, 18 Марта 2013, 20:31 | Сообщение # 7
Воин добра и света
Сейчас нет на сайте
Цитата (Fargost)
Блин, ну кнопки это уже не модно

Пример: smile
В создании
Цитата

this.air = 0;
this.jump = 0;

Каждый шаг
Цитата

if ( keyboard_check(vk_right) ) {
x += 4;
direction = 0;
if (place_meeting(x, y, obj_ground) != null) {
x = xprevious;
}
}

if ( keyboard_check(vk_left) ) {
x -= 4;
direction = 180;
if (place_meeting(x, y, obj_ground) != null) {
x = xprevious;
}

}

if ( keyboard_check_pressed(vk_up) && jump == 0 ) {
jump = 1;
air = 9;
}

if ( air > -5 ) air -= 0.5;

y -= air;

if ( place_meeting(x, y, obj_ground) != null) {
y = yprevious;
air = 0;
jump = 0;
}




Сообщение отредактировал jiumx60rus - Понедельник, 18 Марта 2013, 20:32
nonameДата: Понедельник, 18 Марта 2013, 21:13 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Цитата (GameMix)
Ты действительно считаешь, что это кому-то нужно?! Сделал бы запрыгивание на платформу сквозь неё, ещё б можно было счесть за урок.

да. уроков про прыжок и про то как реализовать остальные фичи платформеров, можно найти не мало. но не все об этом знают.

почему бы не прикрепить в верху раздела тему с рассмотрением всех деталей того, как на гамаке сделать платформер?

туда можно было бы поместить такие уроки:
- перемещения персонажа
- учёт стен
- учёт лестниц
- добавим подвижных монстров
- прыжки
- добавим возможность стрелять
...
ну может ещё что-нибудь, что часто бывает нужно.


все правила форумной игры Дуэль Программистов
GMHelpДата: Вторник, 19 Марта 2013, 09:02 | Сообщение # 9
почетный гость
Сейчас нет на сайте
Бесполезный урок... Щас всё на коде делаю.

Всё что я сказал может показаться обидно , но это только кажется так, ибо мнение моё и оно может поменяться.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг