Передвижение героев в Game Maker
|
|
CrazyBrain | Дата: Суббота, 13 Апреля 2013, 11:41 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Условие:главный герой должен подпрыгнуть с одной платформы и приземлиться на другую платформу. Проблема: Прыгнуть-то герой прыгнул, а вот приземляется очень странно. Сначала он летит довольно таки не плохо, но, при приближении к платформе, он вдруг замедляется и очень плавно на неё падает. Думаю что ошибка в написанном мною коде, но моих знаний не хватает, что бы выполнить проверку самостоятельно...
Create
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
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, с твоим примером всё отлично. Перенёс все настройки с твоего примера в свою игру (хотя там ничего различного нет) и все равно это чёртово плавное приземление
Сайт игры 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
|
|
| |