Понедельник, 29.04.2024, 09:00
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Форум » Разработка игр » Вопросы по game maker » Гравитация (Статус: Решено)
Гравитация
GoodWinДата: Среда, 22.08.2012, 23:38 | Сообщение # 1
Бывалый
Группа: Постоянный
Сообщений: 473
Награды: 1
Репутация: 80
Статус: Offline
Всем привет, какой код нужен для того чтобы: если у игрока под ногами есть земля (obj_ground) то гравитация была =0, а если нет то 3?

Кому нужны саундтреки для ваших игр, обращайтесь..
 
koaranДата: Четверг, 23.08.2012, 11:12 | Сообщение # 2
Продвинутый
Группа: Постоянный
Сообщений: 483
Награды: 2
Репутация: 37
Статус: Offline
GoodWin, для этого в объект твоего "прыгуна" в событие Create добавь действие Set Gravity и напиши в нем:

Direction: 0
Speed: 2

Теперь в событие столкновение с землей напиши действие Move Fixed и поставь точку посередине и Speed: 0


Пошел спать.
 
BRESSДата: Четверг, 23.08.2012, 13:11 | Сообщение # 3
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
Quote (koaran)
GoodWin, для этого в объект твоего "прыгуна" в событие Create добавь действие Set Gravity и напиши в нем:

Direction: 0
Speed: 2

Теперь в событие столкновение с землей напиши действие Move Fixed и поставь точку посередине и Speed: 0

При работе с гравитацией ни в коем случае нельзя использовать Move Fixed!

Да и на самом деле лучше сделать объект obj_ground твердым(поставить галочку над свойством solid), а в событии Step для игрока ввести скрипт:

Code
if (not place_free(x,y+1)) then
gravity=0
else
gravity=3


Кстати, в событии столкновения с нужным объектом необходимо обнулить значение переменной vspeed (vspeed=0).


Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
 
GoodWinДата: Четверг, 23.08.2012, 15:14 | Сообщение # 4
Бывалый
Группа: Постоянный
Сообщений: 473
Награды: 1
Репутация: 80
Статус: Offline
а как прыжок в верх сделать тогда, с этой гравитацией?

Кому нужны саундтреки для ваших игр, обращайтесь..
 
BRESSДата: Четверг, 23.08.2012, 15:45 | Сообщение # 5
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
Quote (GoodWin)
а как прыжок в верх сделать тогда, с этой гравитацией?

Просто вставь этот скрипт в нужное событие:
Code
if (not place_free(x,y+1)) then  
vspeed=-много


Только знаешь, я бы снизил значение gravity до 1, а то игрока так прижимать будет, что он вряд ли вообще оторвется от земли.


Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
 
GoodWinДата: Четверг, 23.08.2012, 17:43 | Сообщение # 6
Бывалый
Группа: Постоянный
Сообщений: 473
Награды: 1
Репутация: 80
Статус: Offline
если я нажимаю прыжок, появляется спрайт прыжка, а если во время прыжка нажать бег, то во время прыжка появляется спрайт бега, как от этого избавится?

Кому нужны саундтреки для ваших игр, обращайтесь..
 
BRESSДата: Четверг, 23.08.2012, 22:32 | Сообщение # 7
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
Quote (GoodWin)
если я нажимаю прыжок, появляется спрайт прыжка, а если во время прыжка нажать бег, то во время прыжка появляется спрайт бега, как от этого избавится?

Есть такая функция, как place_free. Порой она неплохо выручает в создании платформера:

Code
if (place_free(x,y+1)) then begin
   if (любая переменная отвечающая за направление=право) then
   sprite_index=правый спрайт в прыжке
   else
   sprite_index=левый спрайт в прыжке
end
else begin
   if (любая переменная отвечающая за направление=право) then
   sprite_index=правый спрайт не в прыжке
   else
   sprite_index=левый спрайт не в прыжке
end;


Это скрипт воткни в событие step и удали все прочие манипуляции со спрайтами, а то гавно какое-то выйдет. И кстати, если игрок будет цепляться за поверхность, то присвой ему какую-нибудь квадратную маску.


Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
 
GoodWinДата: Четверг, 23.08.2012, 22:38 | Сообщение # 8
Бывалый
Группа: Постоянный
Сообщений: 473
Награды: 1
Репутация: 80
Статус: Offline
а если спрайт повёрнут к мышке, будет работать?

Кому нужны саундтреки для ваших игр, обращайтесь..
 
BRESSДата: Четверг, 23.08.2012, 22:38 | Сообщение # 9
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
Quote (GoodWin)
если я нажимаю прыжок, появляется спрайт прыжка, а если во время прыжка нажать бег, то во время прыжка появляется спрайт бега, как от этого избавится?

И да, кстати... Я тут подумал, что ты можешь запороться с "любая переменная отвечающая за направление", как полный нуб. Но я не теряю надежды в том, что ты разберешься сам. Однако подстраховаться мне не помешает:

-Итак, в событии Create пиши: right=true
-В событии движения вправо пиши: right=true
-В событии движения влево: right=false

Теперь ты можешь смело писать вместо
Code
любая переменная отвечающая за направление=право

нашу переменную:
Code
right=true


Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
 
BRESSДата: Четверг, 23.08.2012, 22:40 | Сообщение # 10
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
Quote (GoodWin)
а если спрайт повёрнут к мышке, будет работать?

читай мой пост выше...


Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
 
GoodWinДата: Четверг, 23.08.2012, 22:48 | Сообщение # 11
Бывалый
Группа: Постоянный
Сообщений: 473
Награды: 1
Репутация: 80
Статус: Offline
а переменная отв. за направление в право это тоже right=true?

Кому нужны саундтреки для ваших игр, обращайтесь..
 
GoodWinДата: Четверг, 23.08.2012, 22:50 | Сообщение # 12
Бывалый
Группа: Постоянный
Сообщений: 473
Награды: 1
Репутация: 80
Статус: Offline
он у меня ходить перестал, посмотри
Прикрепления: 1841844.gmk (12.4 Kb)


Кому нужны саундтреки для ваших игр, обращайтесь..
 
BRESSДата: Четверг, 23.08.2012, 22:51 | Сообщение # 13
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
Quote (GoodWin)
а переменная отв. за направление в право это тоже right=true?

Нет biggrin Это всего лишь наша вспомогательная переменная, которая поможет нам рисовать нужный спрайт.


Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
 
BRESSДата: Четверг, 23.08.2012, 22:54 | Сообщение # 14
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
Quote (GoodWin)
он у меня ходить перестал, посмотри

Quote (BRESS)
И кстати, если игрок будет цепляться за поверхность, то присвой ему какую-нибудь квадратную маску.

http://rghost.ru/39963323


Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
 
GoodWinДата: Четверг, 23.08.2012, 22:54 | Сообщение # 15
Бывалый
Группа: Постоянный
Сообщений: 473
Награды: 1
Репутация: 80
Статус: Offline
смотри выше

Кому нужны саундтреки для ваших игр, обращайтесь..
 
Форум » Разработка игр » Вопросы по game maker » Гравитация (Статус: Решено)
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: