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

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

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

Эм...я тригонометрию учил в 8 классе, и нихрена это не высшая математика. Это самое начало матанализа.

И что ты имеешь в виду под "наклонками"? Наклонные платформы? Передвижение по ним? Поворот спрайта на них?

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


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

пример передвижения я тебе кидал. Делать его через тригонометрию только займет процессорное время. Да и нужно только если ты собираешься делать 360 градусов (+я реализовывал псевдо-360 без них)

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

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


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

Просто твой пример портит коллизии,и Соник перестает разгоняться.

Кстати, я почитал хелп,там про коллижион_лайн кратко написано, я чуть не понял.

Модифицируй это, пожалуйста, я просто не понял, какие координаты вписывать в x1,x2,y1,y2

//Хоминг

if keyboard_check_pressed(vk_space) and onGround=false and canhoming=true and place_free(x,y+4)

{

sound_play(snd_homing)

if (distance_to_object(gmlTarget)>200)

{

dash=true

canhoming=false

vspeed=-2;

if facingRight=0

{

motion_add(180,7)

}

else

if facingRight=1

{

motion_add(0,7)

}

}

else

{

dash=true

homing=true

alarm[0]=30

{

i=instance_nearest(x,y,gmlTarget)

move_towards_point(i.x,i.y,12)

}

}

}

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


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

x1,y1,x2,y2 - Это координаты точек, между которыми будет проверяться столкновение. Соответственно, ставь координаты двух объектов.

В моем примере СОник перестает разгоняться, потому что в переменную скорости поставлена константа, нужно писать скрипт для разгона. Ну или просто вместо sp поставить speed или что там у тебя за скорость отвечает.

У тебя движок написан не так, как требуется при этом скрипте, потому и глюки возникают.

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

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


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

Боже, ну почитай ты мануал, там черным по белому написано, что к чему относится. Да, блин, стенку в obj записывать.

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


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

//homing attack

if keyboard_check_pressed(vk_space) and onGround=false and canhoming=true and place_free(x,y+4)

{

sound_play(snd_homing)

if (distance_to_object(gmlTarget)>200)

{

dash=true

canhoming=false

vspeed=-2;

if facingRight=0

{

motion_add(180,7)

}

else

if facingRight=1

{

motion_add(0,7)

}

}

if (distance_to_object(gmlTarget)<200) and collision_line(gmlSonic.x,gmlSonic.y,gmlTarget.x,gmlTarget.y

,gmlWall,0,0)

{

dash=true

homing=true

alarm[0]=30

{

i=instance_nearest(x,y,gmlTarget)

move_towards_point(i.x,i.y,12)

}

}

}

 

Не помогает. Надеюсь,все правильно в коде написал. Ну все равно в стенку летит.

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


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

Я в этом коде вообще ничего уже не понимаю. Напиши ты отдельный скрипт для хомминга, а потом просто используй его при нажатии на клавишу. И уже в нем проверяй на пересечение. Кстати, использовать функцию то надо, наверное, ПОСЛЕ того, как у тебя назначен объект gmlTarget, нэ?

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


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

тоже назрел вопрос по ГМ:

 

как сделать эту шнягу(названия не знаю)?

post-9260-1276153947_thumb.jpg

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


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

Нужно что бы Соник переходил в режим "повисания" и при этом нужно заставить его закрепиться на ручке , а в самой ручке сделать что бы она двигалась либо по определённому пути , либо просто скоростью . Верёвка ничего не делает. Она лишь для красоты.

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


Ссылка на сообщение
заставить его закрепиться на ручке

 

не напомнишь код?

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


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

if rope=1

{

objSonic.x=objRope.x

objSonic.y=objRope.y

}

else

{}

Ну, координаты сам подгонишь)

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


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

Как сделать комнату которая в длинну будет бесконечная??? (То-есть летишь летишь и будешь лететь пока не победишь босса.)

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


Ссылка на сообщение
Как сделать комнату которая в длинну будет бесконечная??? (То-есть летишь летишь и будешь лететь пока не победишь босса.)

не легче ли сделать движущийся бэк?

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


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

Но как?И есле сделать движущийся бэк то обьекты-препятствия которых наставишь будут через какое-то время резко изчезать!!!

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


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

Ничего исчезать не будет. Просто тут ровные руки нужны. Надо прописать горизонтальную скорость заднику.

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


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

причем сделать это легко

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


Ссылка на сообщение
Но как?И есле сделать движущийся бэк то обьекты-препятствия которых наставишь будут через какое-то время резко изчезать!!!

 

Ставь игрока и босса обратно в начало зацикленного участка. Так, чтобы казалось, что это продолжение уровня. См. doomsday из Sonic and Knuckles, боссов Sonic Advance 2 и т.д.. Такая фишка часто используется.

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


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

1.На вопрос по поводу бесконечной комнаты я уже отвечал в этой теме. Листай назад.

2.E-1000 сколько можно задавать вопросы ответы на которые есть в хелпе(русском)?

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


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

конечно я вас достал этим вопросом, но всё-таки: 

 

как сделать таймер на HUD-е?

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


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

В каком смысле сделать? Как парсить время или как его хранить? Если первое, то минуты = время (если float) / 60, секунды = время % (деление с остатком) 60, доли секунды = время - floor(время).

А вообще вот тебе план на будущее:

1. Думай своей головой.

2. Если не помогает, ищи в интернете, юзай гугл.

3. И только потом можно задавать вопрос здесь.

Извини, если я тебя вдруг обидел, просто не дай бог начнут задавать вопросы типа "а как присвоить значение переменной?".

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


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

наверное это самый тупой вопрос:

 

во многих движках можно встретить перменную y_speed, её можно заменить vspeed?

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


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

если там используеться своя переменная для скорости, значит за счёт неё игрок по формуле передвигаеться и с помощью неё проверяеться столкновение со стенками. Просто дело в том что hspeed и vspeed при больших значения не помогает игроку 100% сталкиваться со стенками ипоэтому он их просто пролетает насквозь. из-за этого в движках используеться своя переменная и формула которая заставляет игрока двигаться.

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


Ссылка на сообщение
if place_meeting(x-obj_player.xdir,y,obj_player) obj_sonic.x+=hspeed;

 

как обозначить xdir в obj_player?

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


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

Не знаю. В каждом движке своё используеться. Разбирайся сам. Тут олучаеться что проверяет есть ли стенка в заданном направлении исходя из данной скорости.

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


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

xdir - это переменная, отвечающая за поворот персонажа. Если он повернут влево, то она равна -1, если вправо, то 1. Как назначать, думай сам.

И мне интересно, зачем было менять объект стенки на объект Соника.

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

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


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

Люди, ищу возможные варианты создания "эффекта удара", когда в платформерах, при ударе по врагу он на секунду становится белым. (Вариант со спрайтами не предлагать a3ba339a.png)

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


Ссылка на сообщение
Люди, ищу возможные варианты создания "эффекта удара", когда в платформерах, при ударе по врагу он на секунду становится белым. (Вариант со спрайтами не предлагать a3ba339a.png)

Программным методом, пожалуй, никак. В draw_sprite_ext белый цвет - это режим без смешивания цветов, соответственно, во всех подобных функциях этот цвет - идет за режим без смешивания. Другое дело, если ты рисуешь спрайт на сурфейсе, тогда можно просто залить его сплошным белым цветом при помощи, вроде бы, draw_clear(c_white), но сомневаюсь, что ты рисуешь их на сурфейсе, поэтому только спрайтами.

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


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

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

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

×