Перейти к содержимому
Джанкер

Помогите с Гейм Мейкером

Рекомендуемые сообщения

Если я не ошибаюсь, keyboard_key_press() устанавливает состояние клавиши, а не проверяет его. Да и зачем ты в функцию строку отправляешь, когда нужен код клавиши?.

Используй keyboard_check(), keyboard_check_pressed() или keyboard_check_released().

 

Отвечаю на возможные последующие вопросы: рисовать спрайт гамак вроде бы может только в событии draw, кроме того, спрайт будет выведен на экран только в течении 1 кадра, так что тебе надо использовать переменную для проверки.

Изменено пользователем Scorg

Поделиться сообщением


Ссылка на сообщение

Джанкер, это не работает.

 

for (i=-8;i<10;i+=1) {

if !place_meeting(x+hspeed,y-i,gmlWall2) {

x+=hspeed;

if place_meeting(x+hspeed,y+32,gmlWall2) && onGround y-=i;

exit;

}

}

 

Я пишу это Сонику в Степ, но он сильно лагает - застревает в платформе, иногда только мееееееедленно движется вперед. Я прочитал в хелпе про For, правда чуть запутанно. может из-за платформы? я сделал платформу спрайтом 32х32, провел линию от лев. угла до прав. угла и залил то, что надо.

 

Теперь надо разобраться с кодом. Там ведь координаты подогнаны под 32х32?

Изменено пользователем Ёжик Бастер

Поделиться сообщением


Ссылка на сообщение

ну стенке то параметр Solid поставь true. Иначе не будет работать.

По клавишам:

Проверка клавиш осуществляется по виртуальным клавишам. Значит, проверка Энтера будет осуществляться так:

keyboard_check(vk_enter);

 

Если нужно проверить клавишу с буквой, то вот так:

keyboard_check(ord("W"));

 

Причем, буква обязательно большая и обязательно в кавычках.

А рисовать да, ГМ действительно может рисовать только в Draw, если спрайт рисуется кодом.

Изменено пользователем Джанкер

Поделиться сообщением


Ссылка на сообщение

Джанкер, так Солид то True! Я вообще запутался. Может в коде нужны другие координаты? И вместо sp я импользую hspeed, но это тут вроде не при чём

Поделиться сообщением


Ссылка на сообщение

А, все, понял. hspeed вообще лучше не использовать. Как только ему будет присвоено значение, персонаж начнет двигаться, а этого нам не нужно. Делай новую переменную. Какую величину ты поставишь, на такое количество пикселей будет двигаться персонаж при выполнении цикла.

Поделиться сообщением


Ссылка на сообщение

какой код может заменить кнопку "Display Message"?

Поделиться сообщением


Ссылка на сообщение

show_message?

 

Джанкер, то есть, создать переменную wspeed, и поменять hspeed на неё? Я чуть не догнал.

Изменено пользователем Ёжик Бастер

Поделиться сообщением


Ссылка на сообщение
Джанкер, то есть, создать переменную wspeed, и поменять hspeed на неё? Я чуть не догнал.

ну он это и имел ввиду

Поделиться сообщением


Ссылка на сообщение

нужно просто сделать переменную, в которую будет заноситься значение скорости (НЕ hspeed, его вообще не надо использовать), и заменить в коде. С ускорением сам разберешься, это не настолько сложно.

Поделиться сообщением


Ссылка на сообщение

Джанкер, а почему некоторые делают кривые поверхности именно на hspeed?

Поделиться сообщением


Ссылка на сообщение

Потому что алгоритм другой.

Поделиться сообщением


Ссылка на сообщение

как сделать чекпоинт?

Поделиться сообщением


Ссылка на сообщение

переменные и координаты юзай.

Вкратце:

Создаешь переменную point=0

создаёшь объект чекпоинта.

в столкновении игрока с поинтом,переменная point=1

при рестарте комнаты в креате у игрока такой код:

 

if point=1

{x=objPoint.x,y=objPoint.y}

 

вроде так

Изменено пользователем Ёжик Бастер

Поделиться сообщением


Ссылка на сообщение

Это если чекпоинт один. Если несколько, то нужно записать в переменную id того чекпоинта, к которому надо переместиться.

Поделиться сообщением


Ссылка на сообщение

Да. Или же более геморройный, просто создавать объекты "obj_check1, obj_check2 и т.д."

Поделиться сообщением


Ссылка на сообщение
Если несколько, то нужно записать в переменную id того чекпоинта, к которому надо переместиться.

а можно просто использовать point+=1 и при выходе из комнаты прописать не point=1 а point>0

Поделиться сообщением


Ссылка на сообщение

Чего? Если ты про то, чтобы проверять эту переменную при каждом входе в комнату, и исходя из нее переноситься к разным чекпоинтам, то это бредовое решение.

Поделиться сообщением


Ссылка на сообщение

Где-то видел (вроде бы даже в этой теме) решение использовать 2 переменные стартовых координат. При прохождении чекпоинта они изменялись, и при смерти/рестарте игрок сразу переносился в эти координаты - к чекпоинту.

Поделиться сообщением


Ссылка на сообщение

я это писал

 

Кстати, Джанкер, я слышал, есть способ создавать циркулярные платформеры? Которые в полярных координатах, нет такого примерчика?

Поделиться сообщением


Ссылка на сообщение
Где-то видел (вроде бы даже в этой теме) решение использовать 2 переменные стартовых координат. При прохождении чекпоинта они изменялись, и при смерти/рестарте игрок сразу переносился в эти координаты - к чекпоинту.

Вариантов куча. Ровно столько же, сколько людей на свете.

 

Кстати, Джанкер, я слышал, есть способ создавать циркулярные платформеры? Которые в полярных координатах, нет такого примерчика?

Чего? Ты сейчас вообще о чем?

Поделиться сообщением


Ссылка на сообщение
Кстати, Джанкер, я слышал, есть способ создавать циркулярные платформеры? Которые в полярных координатах, нет такого примерчика?

 

(отвечу я) Никто не запрещает пользоваться и полярными координатами. Результат-то будет тот же. Так что просто поставь вопрос - зачем это нужно? Действительно, иногда ими пользоваться удобней. И пойми, что вывод на экран всегда в конечном счёте происходит в прямоугольной системе. Так что на конечном этапе, непосредственно перед выводом на экран, ты должен переводить полярные координаты в прямоугольные.

 

вот тебе платформер на гм. вполне себе инди Кстати, рекомендую всем.

 

Да, для такой игрушки графику лучше рисовать примитивами. Углы-то самые разные, если использовать повороты спрайтов, может быть не всегда красиво.

Поделиться сообщением


Ссылка на сообщение

Я не понял, что есть "циркулярные платформеры". Игры, которые крутятся по кругу?

Поделиться сообщением


Ссылка на сообщение

Ищу простой способ сделать вот что:

При столкновении с объектом, переменная становиться 1, а при потере контакта меняется на 0.

Изменено пользователем Reven The Hedgehog

Поделиться сообщением


Ссылка на сообщение

if (!place_free(x,y)) a=1

else a=0

Но это проверяет, свободны ли координаты от твёрдых объектов

 

а для нетвёрдых:

 

if (!place_empty(x,y)) a=1

else a=0

 

и то это не совсем для этого

Изменено пользователем Ёжик Бастер

Поделиться сообщением


Ссылка на сообщение

Нееет, объект с которым нужно столкнуться один определенный, а не любой.

 

Спасибо, сам придумал.

Изменено пользователем Reven The Hedgehog

Поделиться сообщением


Ссылка на сообщение

тогда тоже самое но только place_meeting(x,y,object)

Поделиться сообщением


Ссылка на сообщение

Джанкер, как в хоминге использовать collision_line? Никогда не юзал.

 

Ээ..не совсем по ГМ, как строить красивые уровни? Фантазии никакой...

Поделиться сообщением


Ссылка на сообщение
Ээ..не совсем по ГМ, как строить красивые уровни? Фантазии никакой...

Поиграй побольше в оригинальных соников и посмотри там как сделана каждая часть уровня. Но всё же для всех игр есть несколько одинаковых правил - неповторимость, красота, удобство прохождения.

Поделиться сообщением


Ссылка на сообщение
Джанкер, как в хоминге использовать collision_line? Никогда не юзал.

Возьми и добавь в условие !collision_line. Почитай про функцию в мануале. Вообще, все, что нужно в нем есть, нужно просто уметь искать и читать.

Поделиться сообщением


Ссылка на сообщение

О, я тебя понял!

 

Новая проблема:

 

Я понял (вроде), как сделать наклонки с помощью sin и cos. Надо найти С и К нужного угла и делать так?

 

x -= sin(degtorad,angle)

y -= cos(degtorad,angle)

 

Ну, типа того? Эээ...я не проходил высшую математику, поэтому пришлось остаться после уроков и выучить для себя СИН\КОС\ТГ\КТГ

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×