| 
	
		
		
			| Чтобы объект по нажатию кнопки появлялся в центре |  |  |  | 
| 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, спасибо! |  |  |  |  |  
 |