Чтобы объект по нажатию кнопки появлялся в центре
| |
Podpolniy | Дата: Пятница, 06 Июля 2012, 00:09 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| 1. Как сделать появление объекта по центру экрана по нажатии кнопки?
У меня есть объект (кнопка меню), я нажимаю Пробел – этот объект появляется по центру экрана. Только не по центру комнаты, а именно по центру экрана, чтобы вне зависимости от того, куда проскроллирована комната, кнопка чтоб появлялась по центру экрана.
2. И ещё один вопрос:
Как сделать, чтобы кнопки не турбились. Нажимаю я пробел, и пока держу его, действие выполняется много раз (включается-выключается), пока не отпущу. Как сделать так, чтобы один раз нажал и действие чтобы один раз сработало?
|
|
| |
Naza | Дата: Пятница, 06 Июля 2012, 02:25 | Сообщение # 2 |
GMUser
Сейчас нет на сайте
| Quote (Podpolniy) У меня есть объект (кнопка меню), я нажимаю Пробел – этот объект появляется по центру экрана. Только не по центру комнаты, а именно по центру экрана, чтобы вне зависимости от того, куда проскроллирована комната, кнопка чтоб появлялась по центру экрана. instance_create(view_xview[0]+N, view_yview[0]+M, object); // могут быть ошибки. N = ширина вида в комнате / 2; M = длина вида в комнате / 2. Вообщем, вот пример: скачать с rghost Нажимай стрелки что бы управлять/скроллить.
Добавлено (06.07.2012, 02:25) --------------------------------------------- Quote (Podpolniy) чтобы один раз нажал и действие чтобы один раз сработало? Проверяй нажатие клавиш не как if keyboard_check(key) /*клавиша*/ а как if keyboard_check_pressed(key) /*клавиша нажата*/.
Сообщение отредактировал meax - Пятница, 06 Июля 2012, 12:39 |
|
| |
Dva_Kota | Дата: Пятница, 06 Июля 2012, 10:25 | Сообщение # 3 |
заслуженный участник
Сейчас нет на сайте
| Только вместо N и M должны быть половина ширины и высоты соответственно.
*Если нажатие пробела происходит не в степе а в событиях нажатия клавиши, то нужно ставить не в событие Keybord (где нарисована просто клавиатура), а в событие Key Press (где нарисована клавиатура с красной стрелочкой) - тогда событие будет выполняться когда происходит нажатие клавиши, а не пока клавиша удерживается.
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
Raven84 | Дата: Пятница, 06 Июля 2012, 12:58 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Dva_Kota, "Только вместо N и M должны быть половина ширины и высоты соответственно." Так meax и указал же что N=ширина вида в комнате деленная на два (/2).Прочитай внимательнее...
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| |
Naza | Дата: Суббота, 07 Июля 2012, 09:29 | Сообщение # 5 |
GMUser
Сейчас нет на сайте
| Raven84, нет, я сначала написал просто ширина и высота, потом исправил.
|
|
| | |
Podpolniy | Дата: Суббота, 07 Июля 2012, 22:31 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| meax, Спасибо за подсказки с GML!
Только мне нужно немного не то в вопросе 1.
Твоим кодом создаётся объект по центру, но он не всегда в центре при скроллинге, т.е. уходит за границы экрана. А мне нужно, чтобы объект всегда был по центру при том, что производится скроллинг комнаты. Как менюшка.
3. Также подскажите как поставить игру на паузу, чтобы персонаж обездвижился.
Т.е. у меня появляется графический объект на экране (это красивая кнопка (кнопки)) по центру как в вопросе 1 я добиваюсь реализовать. Но как при этом ещё обездвижить персонаж (достаточно только его) не получается.
Смотрел всякие примеры пауз, но там они вкомплекте с идиотскими текстовыми менюшками, которые уже неактуальны, либо работают непонятным мне образом и многие вовсе зависают с моей игрой - несовместимы некоторые функции. В общем мне бы научиться по нажатию клавиши обездвиживать персонаж, и по повторному нажатию возвращать его движение.
|
|
| |
Naza | Дата: Суббота, 07 Июля 2012, 23:16 | Сообщение # 8 |
GMUser
Сейчас нет на сайте
| Quote (Podpolniy) Твоим кодом создаётся объект по центру, но он не всегда в центре при скроллинге, т.е. уходит за границы экрана. А мне нужно, чтобы объект всегда был по центру при том, что производится скроллинг комнаты. Как менюшка. У меня там всегда по центру появляется. Поскролли стрелками. =) Quote (Podpolniy) Также подскажите как поставить игру на паузу, чтобы персонаж обездвижился. Поищи, внизу, в правом нижнем углу есть поиск. Напиши туда "Пауза" и будут тебе результаты. Или попробуй написать вот так: Code screen_refresh(); keyboard_wait();
|
|
| |
Podpolniy | Дата: Воскресенье, 08 Июля 2012, 04:31 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| Quote (meax) У меня там всегда по центру появляется.
Ну он у меня создаётся всегда в центре, да. Но объект создался - я иду персонажем в другой конец комнаты, а кнопка там и стоит, где она создалась - не движется как бар жизней, например.
Quote (meax) Поищи, внизу, в правом нижнем углу есть поиск. Напиши туда "Пауза" и будут тебе результаты. Или попробуй написать вот так:
Я искал насчет паузы - не нашел ничего подходящего и работающего.
keyboard_wait(); - останавливается всё (даже мышка), но нажимаю клавишу вперед и всё размораживается и персонаж идёт. Т.е. это не подходит.
Где-то читал. что можно как-то создавать скрин экрана и подгружать его как фон для паузы, а при нажатии кнопки паузы как бы производится переход в комнату, где наложен этот фон, соответственно там не действуют движения игровой комнаты. Вот только как это реализовать с возвратом на ту же позицию камеры и персонажа в обратную комнату? И какова задержка будет, ведь на создание скрина и наложение его фоном нужно время...
Есть примеры у кого-нибудь такие?
|
|
| |
Raven84 | Дата: Воскресенье, 08 Июля 2012, 05:36 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| "Ну он у меня создаётся всегда в центре, да. Но объект создался - я иду персонажем в другой конец комнаты, а кнопка там и стоит, где она создалась - не движется как бар жизней, например."
Что бы он там и оставался тебе нужно в степе этого объекта прописать x=view_xview[0]+N y=view_yview[0]+M
(что такое N и M смотри в переписке выше.Как найти эти значения надеюсь поймешь?)Добавлено (08.07.2012, 05:36) --------------------------------------------- Или проще можно написать так (тоже в степе объекта который должен находится постоянно в центре):
x=view_wview(0)/2 y=view_hview(0)/2
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| |
Naza | Дата: Воскресенье, 08 Июля 2012, 20:00 | Сообщение # 11 |
GMUser
Сейчас нет на сайте
| Quote (Podpolniy) Ну он у меня создаётся всегда в центре, да. Но объект создался - я иду персонажем в другой конец комнаты, а кнопка там и стоит, где она создалась - не движется как бар жизней, например. В Step'e у меню пиши: Code x = view_xview[0]+view_wview[0]/2; y = view_yview[0]+view_hview[0]/2;
Сообщение отредактировал meax - Воскресенье, 08 Июля 2012, 20:01 |
|
| |
TLT | Дата: Понедельник, 09 Июля 2012, 04:15 | Сообщение # 12 |
Сейчас нет на сайте
| Quote (Podpolniy) 3. Также подскажите как поставить игру на паузу, чтобы персонаж обездвижился.
В скрипте по нажатой кнопки деактивируй персонаж:
Code instance_deactivate_object(Obj_Player_1)
Затем выведи на экран, например, кнопку, чтобы кликнуть мышью по ней и активировать его обратно:
Code instance_activate_object(Obj_Player_1)
Т.е. ты на время вывода меню удаляешь персонаж из комнаты, а затем по нажатию на пункт меню "Продолжить" возвращаешь на то же место. ___
Quote (Podpolniy) Вот только как это реализовать с возвратом на ту же позицию камеры и персонажа в обратную комнату?
Нужно по нажатию сделать сейв и переход в комнату. А там в комнате сделать переход обратно путём загрузки этого сейва. Делается довольно-таки легко. Насчёт скрина - не знаю, так как в GM не создавал такое, но он создаётся и грузится примерно также - снимаешь, загружаешь. Имена сейву и скрину дай индивидуальные.
Дао, выраженное словами, не есть истинное Дао.
|
|
| |
Podpolniy | Дата: Среда, 18 Июля 2012, 03:55 | Сообщение # 13 |
был не раз
Сейчас нет на сайте
| TLT, спасибо!
|
|
| |
|