Вторник, 16 Апреля 2024, 16:02

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Чтобы объект по нажатию кнопки появлялся в центре (Как сделать, подскажите, пожалуйста)
Чтобы объект по нажатию кнопки появлялся в центре
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).Прочитай внимательнее... smile


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
NazaДата: Суббота, 07 Июля 2012, 09:29 | Сообщение # 5
GMUser
Сейчас нет на сайте
Raven84, нет, я сначала написал просто ширина и высота, потом исправил. yes
Raven84Дата: Суббота, 07 Июля 2012, 11:53 | Сообщение # 6
старожил
Сейчас нет на сайте
Ясно

Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
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, спасибо!
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Чтобы объект по нажатию кнопки появлялся в центре (Как сделать, подскажите, пожалуйста)
  • Страница 1 из 1
  • 1
Поиск:

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