Понедельник, 25 Ноября 2024, 11:13

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Передвижение героев в Game Maker
CrazyBrainДата: Суббота, 13 Апреля 2013, 11:41 | Сообщение # 1
частый гость
Сейчас нет на сайте
Условие:главный герой должен подпрыгнуть с одной платформы и приземлиться на другую платформу.
Проблема: Прыгнуть-то герой прыгнул, а вот приземляется очень странно. Сначала он летит довольно таки не плохо, но, при приближении к платформе, он вдруг замедляется и очень плавно на неё падает. Думаю что ошибка в написанном мною коде, но моих знаний не хватает, что бы выполнить проверку самостоятельно... sad

Create
Код
jump = 0                    
vspeed = 0


Step
Код
if place_free(x,y+1)                    
{
gravity = 1                    
gravity_direction = 270                    
}
else                    
{
gravity = 0                    
gravity_direction = 270                    
}

if keyboard_check_pressed(vk_up)                    
{
{
if !place_free(x,y+1)                    
{
vspeed = -12                    
jump = 1                    
}
}
}
if place_free(x-4,y)                    
{
if keyboard_check(vk_left)                    
{
sprite_index = main_hero2                           
x-=4                    
}
}

if place_free(x+4,y)                    
{
if keyboard_check(vk_right)                            
{
sprite_index = main_hero                        
x+=4                    
}
}                     


Collision with object wall
Код
jump = 0
vspeed = 0


Release A
Код
x-=4;
image_xscale=-1;


Release D
Код
x-=4;
image_xscale=-1;


Помогите, чем сможете)



Сайт игры Movie Tycoon
Форум игры Movie Tycoon на GCUP
LuxorixДата: Суббота, 13 Апреля 2013, 12:59 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Сделал пример с твоим кодом. Все работает отлично. Думаю баг в масках спрайтов героя. Посмотри они одинакового размера у спрайта влево, вправо и стоп. Пример

LUXORIX GAMES
CrazyBrainДата: Суббота, 13 Апреля 2013, 14:22 | Сообщение # 3
частый гость
Сейчас нет на сайте
Пересмотрел маски, всё с ними в порядке. Создал другой файл игры и с нуля прописал код, получилась та же фигня. Может ли быть такое, что проблема не в коде, а что то случилось с GM? Работаю на 8.0 PRO


Сайт игры Movie Tycoon
Форум игры Movie Tycoon на GCUP
LuxorixДата: Суббота, 13 Апреля 2013, 16:15 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Навряд ли что-то с гм. Мой пример работает? Если да, то ищи проблему в своей игре.

LUXORIX GAMES
CrazyBrainДата: Суббота, 13 Апреля 2013, 16:27 | Сообщение # 5
частый гость
Сейчас нет на сайте
Luxorix, с твоим примером всё отлично. Перенёс все настройки с твоего примера в свою игру (хотя там ничего различного нет) и все равно это чёртово плавное приземление angry


Сайт игры Movie Tycoon
Форум игры Movie Tycoon на GCUP
KurymenДата: Суббота, 13 Апреля 2013, 16:34 | Сообщение # 6
был не раз
Сейчас нет на сайте
CrazyBrain, при столкновении героя с wall попробуй так

Цитата
x = xprevious;
y = yprevious;

if vspeed < 0
move_contact_solid(90, -vspeed);
else
move_contact_solid(270, vspeed);

vspeed = 0;
CrazyBrainДата: Суббота, 13 Апреля 2013, 16:47 | Сообщение # 7
частый гость
Сейчас нет на сайте
Kurymen, просто шикарно) Всё исправилось и теперь приземление не плавное, а стандартное, только почему то при приземлении идёт откат на пару пиксилей назад, что очень сильно в глаза бросается. можно как-нибудь это исправить и за что отвечают параметры
Код
x = xprevious;  
y = yprevious;



Сайт игры Movie Tycoon
Форум игры Movie Tycoon на GCUP
KurymenДата: Суббота, 13 Апреля 2013, 17:47 | Сообщение # 8
был не раз
Сейчас нет на сайте
Эти строки возвращают героя в прошлую позицию, до момента столкновения.

Попробуй так тогда:

Код
if (vspeed > 0 && not place_free(x,y+vspeed))  
move_contact(270)

vspeed = 0
hspeed = 0
  • Страница 1 из 1
  • 1
Поиск:

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