Game Maker - создание игр | HellRoom Games
Май 15, 2025, 04:15:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать прыжок в Game Maker Studio 2 Trial  (Прочитано 13463 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mipfikus
Новичок
*

Репутация: -1
Offline Offline

API: GameMaker Studio 2
Сообщений: 4


« : Июль 14, 2018, 20:50:40 »

Помогите пожалуйста
Не могу сделать прыжок для свой игры платформера
Вот код который я написал , но я не знаю что вписать в поле отмеченное смайликами:

// Переменные
right = keyboard_check(vk_right) || keyboard_check((ord("D")));
left = keyboard_check(vk_left) || keyboard_check((ord("A")));
jump =  keyboard_check(vk_up);
//Движение вправо
if (right)
{
phy_position_x += 4;   
}
//Движение влево
if (left)
{
phy_position_x -= 4;   
}
// Прыжок
 
if (jump)
{
      

}
 
Записан
PRIZZRAK
Новичок
*

Репутация: 1
Offline Offline

API: GameMaker Studio 2
Сообщений: 14


« Ответ #1 : Июль 14, 2018, 22:05:56 »

Раз на физике, physics_apply_impulse наверное)
Записан
Mipfikus
Новичок
*

Репутация: -1
Offline Offline

API: GameMaker Studio 2
Сообщений: 4


« Ответ #2 : Июль 14, 2018, 22:14:33 »

у меня вопрос :
как использовать этот код?

Добавлено: Июль 14, 2018, 22:17:05
И мой вопрос был как сделать прыжок
« Последнее редактирование: Май 14, 2022, 20:51:50 от Mipfikus » Записан
DmitryDS
Потому что я такой-сякой
GM Pro user
*

Репутация: 159
Offline Offline

Награды:
За лояльность! [+150 репутации]1000 сообщений!За постоянность! [100 дней на форуме]
API: GameMaker Studio Master
Сообщений: 1061



WWW
« Ответ #3 : Июль 15, 2018, 05:55:59 »

Во-первых, перемещать предметы в физическом мире, напрямую изменяя их координаты - очень, очень плохая идея. Работаете в физическом мире - используйте импульсы и силы, иначе получите много очень неожиданного.
Во-вторых, PRIZZRAK вам ответил: берете и прикладываете вертикальный импульс. Как работает эта функция, почитайте уж в мане самостоятельно.
Записан

Я никогда никого не пытаюсь оскорбить или обидеть, хотя порой веду себя вызывающе. Не обижайтесь, я не со зла
Mipfikus
Новичок
*

Репутация: -1
Offline Offline

API: GameMaker Studio 2
Сообщений: 4


« Ответ #4 : Июль 15, 2018, 19:18:47 »

Вы сказали что перемещать об. в физ. мире напрямую изменяя из координаты очень плохая идея.
Тогда какая хорошая?

« Последнее редактирование: Май 14, 2022, 20:52:10 от Mipfikus » Записан
DmitryDS
Потому что я такой-сякой
GM Pro user
*

Репутация: 159
Offline Offline

Награды:
За лояльность! [+150 репутации]1000 сообщений!За постоянность! [100 дней на форуме]
API: GameMaker Studio Master
Сообщений: 1061



WWW
« Ответ #5 : Июль 15, 2018, 19:28:13 »

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

И если бы вы читали то, что вам пишут, вы бы уже заметили, что на ваш вопрос ответили.
Записан

Я никогда никого не пытаюсь оскорбить или обидеть, хотя порой веду себя вызывающе. Не обижайтесь, я не со зла
PRIZZRAK
Новичок
*

Репутация: 1
Offline Offline

API: GameMaker Studio 2
Сообщений: 14


« Ответ #6 : Июль 15, 2018, 20:20:50 »

Если нажата клавиша прыжка и переменная прыжок = false,
physics_apply_impulse(xpos,ypos,ximpulse,yimpulse)
переменная прыжка становится true.
и если идет place_meeting по y + 1, объект пола
то переменнная прыжка false

Записан
Bag
Посетитель
**

Репутация: 7
Offline Offline

Пол: Мужской
API: GameMaker Studio 2
Сообщений: 21



« Ответ #7 : Июль 15, 2018, 22:45:03 »

Здравствуйте. Предлагаю следующий вариант:
Create:
Код:
phy_rotation = 0;
phy_fixed_rotation = true; //Запрещаем вращение

//*********************************************//

Impulse_Right =  15;  //Сила импульса вправо
Impulse_Left  = -15;  //Сила импульса влево
Impulse_Up    = -300; //Сила импульса вверх

Step:
Код:
// Переменные
right = ( keyboard_check(vk_right) || keyboard_check((ord("D"))) );
left =  ( keyboard_check(vk_left) || keyboard_check((ord("A")))  );
jump =  ( keyboard_check(vk_up) );
//Движение вправо
if (right)
{
physics_apply_impulse(x, y, Impulse_Right, 0) //Импульс направленный вправо
}
//Движение влево
if (left)
{
physics_apply_impulse(x, y, Impulse_Left, 0) //Импульс направленный влево    
}
// Прыжок

if (jump)
{
if (position_meeting(x, y+1, Obj_Wall)) //Если под объектом есть поверхность, то можно прыгать
{
physics_apply_impulse(x, y, 0, Impulse_Up) //Импульс направленный вверх
}
}


При параметрах:
Gravity Y = 40
Density = 0.2
Friction = 0.4
(У объекта стены Friction = 1)
Записан
Mipfikus
Новичок
*

Репутация: -1
Offline Offline

API: GameMaker Studio 2
Сообщений: 4


« Ответ #8 : Июль 17, 2018, 15:37:23 »

Спасибо за код! было пара ошибок но я их исправил, но всё еще не работает прыжок.
У вас он с этим кодом работал?
Записан
Bag
Посетитель
**

Репутация: 7
Offline Offline

Пол: Мужской
API: GameMaker Studio 2
Сообщений: 21



« Ответ #9 : Июль 17, 2018, 23:09:27 »

Спасибо за код! было пара ошибок но я их исправил, но всё еще не работает прыжок.
У вас он с этим кодом работал?
Если не работает прыжок, значит не выполняется условие - if (position_meeting(x, y+1, Obj_Wall)), а не выполняется оно скорее всего из-за того, что у вас origin (центр спрайта) установлен иначе. Попробуйте установить origin на Bottom Centre и заменить условие на if (position_meeting(x, y+2, Obj_Wall)), должно помочь.
Записан
сергей не умелый
Новичок
*

Репутация: 0
Offline Offline

API: GameMaker Studio 2
Сообщений: 1


« Ответ #10 : Декабрь 25, 2019, 19:05:02 »

Я все сделал как надо а не работает прыжок. Работал в game maker studio 2.

В create я написал:
Impulse_Up = -300

В step я написал:
if (keyboard_check(vk_up))
{
   if (position_meeting(x, y+1, o_wall))
   {
      physics_apply_impulse(x, y, 0, Impulse_Up)
   }
}

Помоги пожалуйста.
Записан
D_Ex_Machina
Новичок
*

Репутация: 0
Offline Offline

API: GameMaker Studio 2
Сообщений: 1


« Ответ #11 : Февраль 15, 2020, 21:31:02 »

У меня была похожая проблема.
Попробуй не растягивать объект, а каждый раз его подставлять его. Мне это помогло.
Записан
Kitor
Посетитель
**

Репутация: 0
Offline Offline

Пол: Мужской
API: Game Maker 8.0 Pro
Сообщений: 23

url=http://www.topglobus.ru/besplatno-userbar-foru


« Ответ #12 : Август 04, 2020, 23:54:55 »

step
//прыжок
if keyboard_check(ord('W'))
if !place_free(x+0,y+1)
if yskor=0
{yskor-=visota_prizka y-=visota_prizka}

Phisics();

creat
//гравитация
gravitacija=0.4
yskor=0
visota_prizka=9

scripts:название Phisics

//gravitacija
if place_free(x+0,y+1)
yskor+=gravitacija
else
yskor=0

//limit skorosti v niz
if yskor<100
y+=yskor
else
{y+=100 yskor=100}
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.195 секунд. Запросов: 33.