Четверг, 05 Декабря 2024, 04:45

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Урок "Как быстро создать меню и не париться"
MR-IgrodelДата: Воскресенье, 08 Января 2012, 15:51 | Сообщение # 1
GML скриптор
Сейчас нет на сайте
От нечего делать решил написать.

Создаем спрайт 128*32, лишь потому что это мои любимые цифры. biggrin Заполняем его любым цветом и ничего не пишем на нем.

Создаем объекты o_newgame, o_exit... и там какие вам еще нужны.
Пихаем во все объекты спрайт кнопки.

ОБЯЗАТЕЛЬНО:
В спрайтах кнопки центрировка должна быть в левом верхнем углу, тобишь в X и Y оригиналов у вас должны быть прописаны нули!

o_newgame; Draw:
(Скажем спасибо Qvant'у :D)
Code
draw_sprite(s_button,-1,x,y)
draw_set_font(f_game)
draw_set_halign(fa_center)
draw_set_valign(fa_middle)
draw_text(x+sprite_width/2,y+sprite_height/4,'Новая игра')


Вместо "Новой Игры" остается прописывать свои названия кнопок

Если нужно чтобы кнопки стояли в середине, а вручную ну не получается просто.
Пишем в Create каждой кнопки

Code
x=room_width/2-sprite_width/2
y=room_height/2

Попутно осознаем, что координату Y нам придется менять для каждой кнопки.

Чтобы не забывать расставлять кнопки или чтобы в начале игры они не телепортировались из своих мест в центр. Делаем объект menu_need и пишем ему в Create:
Code
instance_create(x,y,b_ng)
instance_create(x,y,b_heroes)
instance_create(x,y,b_exit)

Все. удаляем из комнаты все кнопки, ставим в углу этот menu_need.

Основа сделана, остались переходы из комнаты в комнату нажатием на кнопку.

В событие левой кнопки мыши каждой кнопке:

Code
room_goto(ваше_название_комнаты)


Вроде всё smile


Урок взаимодействия джойстика в Game Maker
Как быстро сделать меню и не париться в Game Maker


Сообщение отредактировал MR-Igrodel - Воскресенье, 08 Января 2012, 20:01
noTformaTДата: Воскресенье, 08 Января 2012, 15:56 | Сообщение # 2
Ukrainian independent game developer
Сейчас нет на сайте
Про загадочную шестерку не понял sad

центровка текста это x.текста = х.спрайта кнопки + ((ширина спрайта / 2) - (ширина текста / 2));



@noTformaT
MR-IgrodelДата: Воскресенье, 08 Января 2012, 16:00 | Сообщение # 3
GML скриптор
Сейчас нет на сайте
Quote (noTformaT)
Про загадочную шестерку не понял

Ну смотри. Если ты поставишь число например 2, то текст будет писаться из середины, но не по середине. Каждый раз увеличивая цифру, текст приближается к краю, а чтобы сразу узнать какая цифра тебе нужна пользуйся формулой, которую я описал smile
Quote (noTformaT)
ширина текста

а ширина текста...в символах вычисляется??

Добавлено (08.01.2012, 16:00)
---------------------------------------------
картинка порадовала biggrin


Урок взаимодействия джойстика в Game Maker
Как быстро сделать меню и не париться в Game Maker
QvantДата: Воскресенье, 08 Января 2012, 16:01 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
а так не лучше ?
draw_set_halign( fa_center ); расположение текста поцентру
xorig и yorig спрайта кнопки по центру
MR-IgrodelДата: Воскресенье, 08 Января 2012, 16:09 | Сообщение # 5
GML скриптор
Сейчас нет на сайте
Quote (Qvant)
draw_set_halign( fa_center ); расположение текста поцентру

О_о учу других=учусь сам biggrin не знал, не знал)

Добавлено (08.01.2012, 16:04)
---------------------------------------------

Quote (Qvant)
xorig и yorig

Гамак ошибку пишет. Не знает таких констант

Добавлено (08.01.2012, 16:09)
---------------------------------------------
Не, Qvant, не удобно, ну по крайней мере мне, там все сместилось. пришлось Y-координату все равно вычислять. А так способ рациональней


Урок взаимодействия джойстика в Game Maker
Как быстро сделать меню и не париться в Game Maker
QvantДата: Воскресенье, 08 Января 2012, 16:24 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
xorig, yorig - переменные при создании спрайта , например с экрана
sprite_create_from_screen( x, y, w, h, removeback, smooth, xorig, yorig );
загрузки и тд
в редакторе спрайта это и есть твои X и Y

Quote (MR-Igrodel)
пришлось Y-координату все равно вычислять

да текст сместиться на половину высоты шрифта , но в ГМ есть переменная - высота текста , делим её на два и вычитаем из координат текста

плюс в том что можно кнопку поставить в любое место а текст отрисовывать по координатам этой кнопки и он будит всегда посередине
QvantДата: Воскресенье, 08 Января 2012, 16:32 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
примерно так будит
Code
y = <меню>.у + string_height(<ваш текст кнопки меню>)/2  
x = <меню>.x

<меню> - это id установленного образца кнопки меню
<ваш текст кнопки меню> - это или переменная в которой находится текст кнопки меню или сам текст такого вида "текст"
y - это координата y для текста
MR-IgrodelДата: Воскресенье, 08 Января 2012, 16:37 | Сообщение # 8
GML скриптор
Сейчас нет на сайте
Qvant, стоп, а я тут вычитал. draw_valign не поможет?

Добавлено (08.01.2012, 16:37)
---------------------------------------------
Хах, все работает ровно когда draw_valign поставил)) пост изменил


Урок взаимодействия джойстика в Game Maker
Как быстро сделать меню и не париться в Game Maker
GameMixДата: Воскресенье, 08 Января 2012, 16:49 | Сообщение # 9
старожил
Сейчас нет на сайте
MR-Igrodel, зачем писать 101-й раз то, что уже 100 раз написано? Пиши более сложные уроки.

Steel Standoff - 2D аркада.
Мои статьи
MR-IgrodelДата: Воскресенье, 08 Января 2012, 16:54 | Сообщение # 10
GML скриптор
Сейчас нет на сайте
GameMix, я в процессе. Намереваюсь дописать урок...ну не важно biggrin просто этот должен был быть частью. Иначе потом запутаться можно в них

Добавлено (08.01.2012, 16:54)
---------------------------------------------
Тем более я редко замечал уроки проще и посвященные именно меню в Game Maker


Урок взаимодействия джойстика в Game Maker
Как быстро сделать меню и не париться в Game Maker
FadeBakerДата: Воскресенье, 08 Января 2012, 18:51 | Сообщение # 11
JavaSE Game Developer
Сейчас нет на сайте
Quote (MR-Igrodel)
draw_text(x+sprite_width/6,y+sprite_height/6,'Новая Игра')

Фейспалм. wacko
Не проще ли так?
Code
draw_set_valign(fa_center);
draw_set_halign(fa_center);
draw_text(x + (sprite_width / 2), y + (sprite_height / 2), 'Text');

С этим кодом текст прекрасно рисуется по центру.


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
MR-IgrodelДата: Воскресенье, 08 Января 2012, 19:58 | Сообщение # 12
GML скриптор
Сейчас нет на сайте
Fade, я запихнул тот же самый код в спойлер)

Добавлено (08.01.2012, 19:58)
---------------------------------------------

Quote (Fade)
draw_set_halign(fa_center)

айяй, там fa_middle biggrin


Урок взаимодействия джойстика в Game Maker
Как быстро сделать меню и не париться в Game Maker
Andrey_MДата: Воскресенье, 08 Января 2012, 20:02 | Сообщение # 13
старожил
Сейчас нет на сайте
Проще на самом спрайте написать надпись, сделать их много мсо всеми надписями и затем указывать их для объекта.
и не мучиться с текстом.
хотя если там 100500 кнопок...


ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
MR-IgrodelДата: Воскресенье, 08 Января 2012, 20:08 | Сообщение # 14
GML скриптор
Сейчас нет на сайте
Andrey_M, не, с текстом теперь все окей. ну а если делать спрайты, то тяжело будет текст в серединку впендюрить. да и картинок ужас будет. а тут всего одна smile

Урок взаимодействия джойстика в Game Maker
Как быстро сделать меню и не париться в Game Maker
FadeBakerДата: Воскресенье, 08 Января 2012, 20:38 | Сообщение # 15
JavaSE Game Developer
Сейчас нет на сайте
Andrey_M, этот способ весьма неудобен.


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
Andrey_MДата: Воскресенье, 08 Января 2012, 20:41 | Сообщение # 16
старожил
Сейчас нет на сайте
Quote (Fade)
Andrey_M, этот способ весьма неудобен.

А мне удобно.
Особенно если шрифт должен быть какой-то особенный, которого в инете нет.


ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
MR-IgrodelДата: Воскресенье, 08 Января 2012, 21:00 | Сообщение # 17
GML скриптор
Сейчас нет на сайте
Quote (Andrey_M)
Особенно если шрифт должен быть какой-то особенный, которого в инете нет.

А вот это уже другой разговор)


Урок взаимодействия джойстика в Game Maker
Как быстро сделать меню и не париться в Game Maker
QvantДата: Воскресенье, 08 Января 2012, 21:17 | Сообщение # 18
почти ветеран
Сейчас нет на сайте
Quote (Andrey_M)
Особенно если шрифт должен быть какой-то особенный, которого в инете нет.

Учим справку : font_add_sprite( spr, first, prop, sep );// добавление своего шрифта из спрайта


Сообщение отредактировал Qvant - Воскресенье, 08 Января 2012, 21:17
GameMixДата: Воскресенье, 08 Января 2012, 21:17 | Сообщение # 19
старожил
Сейчас нет на сайте
Quote (Andrey_M)
Особенно если шрифт должен быть какой-то особенный, которого в инете нет.

Если кнопок очень много, тогда можно создавать шрифт из спрайтов. В противном случае, шрифт можно закинуть в архив с игрой.

-----------

Qvant, опередил smile .


Steel Standoff - 2D аркада.
Мои статьи


Сообщение отредактировал GameMix - Воскресенье, 08 Января 2012, 21:18
Robin-LocksleyДата: Понедельник, 09 Января 2012, 04:36 | Сообщение # 20
постоянный участник
Сейчас нет на сайте
Quote (Fade)
Я, например, стараюсь использовать как можно меньше спрайтов, и ту же кнопку рисую кодом без использования спрайта. :)

Из-за чего меню обычно выходят мелкими уродцами. Старайся еще. smile

Вообще то способ действительно странный. Зачем рисовать поверх кнопки шрифтом, если можно заготовить кнопки с надписями (сколько их там? 5-6? лишних 60 кб?) заранее. Тем более если подложка у каждой кнопки разная, все равно пихать придется. А если нет, то экономим мы не на системных ресурсах (для особо ретивых, спрайты после использования нужно из памяти выгружать), а на эстетике нашего меню.

Расставлять кнопки так же желательно вручную, потому как фон меню не все тырят у Малевича, и требуется работа глазко-ручками.
В общем ничего особо полезного в уроке нет. Пятиминутка логических размышлений приведет нас ровно к тому же результату.

Добавлено (09.01.2012, 04:36)
---------------------------------------------
А вот собственно и мой пятак. Даже тему с бесполезным уроком создавать не пришлось.
АХТУНГ! Все подробно прокомментировано и свободно для использования. Но больше печеняк нима.
Тыц!


GameMaker Easy Menu
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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