Форма входа
 
Приветствуем тебя, корсар Юнга!

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!


Купить игры
 



Чат
 
500


Статистика
 
Пользователи, посетившие сайт за текущий день:
Andrey__3010, Kriogener, ukdouble1
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

  • Страница 1 из 1
  • 1
Модератор форума: NikK  
Урок №15: Делаем своё игровое меню
korsar328Дата: Четверг, 09.08.2018, 10:24 | Сообщение # 1
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Урок №15: Делаем своё меню


Глядя на труды других, я решил тоже внести свою лепту и написать урок по созданию своего меню.


Меню будет в формате ПКМ


Вот мой пример:



И так, давайте приступим..

Для работы нам потребуется:


Мы будем редактировать три файла, это:
1. mainmenu.c Находится в "..\PROGRAM\interface\"
2. mainmenu.ini Находится в "..\RESOURCE\INI\interfaces\"
3. common.ini Находится в "..\RESOURCE\INI\texts\"

Открываем mainmenu.ini
Находим такие строки:


Заменяем на следующие


Тем самым мы включили сами кнопочки, которые мы потом будем использовать.

Далее в этом же файле находим строки

и удаляем их

Далее нам нужна картинка которую мы будем использовать в качестве фона
Фон создадим в фотошопе, размер изображения должен быть 1024х1024 пикселов и в формате *.tga
Я назвал свою картинку myMenuBackGround.tga вы можете назвать её по своему, главное потом не ошибиться при добавлении
Далее нам нужно её отконвертировать в формат .tx
Ставим вот такие параметры:

Это нужно для того, чтобы она корректно отображалась в самой игре.
Конвертируем в папку RESOURCE\Textures\INTERFACES\

Далее идём в файл mainmenu.ini и находим следующие строки:
Код

[BACKPICTURE]
position = 5,20,635,460
textureName = interfaces\mainback\mb1.tga
;textureName    = interfaces\ship copy.tga
;textureRect    = 0,0,1,1
color = 84,128,128,128


Меняем их на
Код

[BACKPICTURE]
textureName    = interfaces\myMenuBackGround.tga //путь до картинки


Далее идём в файл mainmenu.c
Ищем следующие строчки:

Удаляем, так как погода у нас генериться не будет
Далее ищем строки

Меняем на


Объясню значит строка формата
CreateString(true,"site",VERSION_NUMBER3,FONT_NORMAL,COLOR_NORMAL,400,575,SCRIPT_ALIGN_CENTER,0.9);

значения в их порядке "видимость" "краткое значение строки" "полное значение строки которое будет отображаться в главном меню" "шрифт текста" "цвет текста" "отступ слева" "отступ сверху" "положение текста" "размер текста"

Цитата шрифт текста ()

Я пока нашёл только два, но наверное есть и ещё
FONT_NORMAL - обычный печатный текст
FONT_CAPTION - текст составленный из букв, которые находятся в файле


Цитата цвет текста ()

С цветом такая же история
COLOR_NORMAL - обычный белый цвет
COLOR_MONEY - золотистый цвет


Цитата положение текста ()

С положением текста дело обстоит проще, тут достаточно знать азы работы с CSS
SCRIPT_ALIGN_LEFT - текст слева
SCRIPT_ALIGN_CENTER - текст по центру
SCRIPT_ALIGN_RIGHT - текст справа


Ищем строки

Меняем на следующее

Это нужно для того, чтобы при нажатии на открытые нами кнопки, они открывали соответствующие окна.
Например, при нажатии на кнопку "Новая игра" Открывалось окно выбора персонажа и т.д.
Далее ищем строки:

Удаляем
Саму функцию MainMenu_CreateShip() не трогайте, иначе крашнется
Далее открываем файл common.ini
Находим строку
Код
string = titleGameMenu,"  Игровое меню  "

Ниже по аналогии создаём свою
Код
string = titleMainMenu,"  Главное меню  "

Это заголовок окна.
Если мы сейчас в таком виде запустим игру то увидим следующее:

А именно что кнопки стоят не правильно
Давайте поставим их на то место, где они и должны стоять в данном уроке:
Для этого заходим снова в mainmenu.ini
Находим строку [B_NEWGAME] далее идут описания этой кнопки, находим строку position


Цитата
Разберёмся в позицией:

Позиция пишется по такому принципу: "отступ с лева до левого края", "отступ сверху до верхнего края", "отступ слева до правого края", "отступ сверху до нижнего края"



Теперь поставим координаты для этой кнопки как у меня в примере:
560,240,780,270
Далее находим следующие поля и ставим им следующие координаты:
[B_LOAD] ==> 560,280,780,310
[B_OPTIONS] ==> 560,320,780,350
[B_CREDITS] ==> 560,360,780,390
[B_QUIT] ==> 560,400,780,430

Сохраняем.

Запускаем игру и видим что всё работает отлично

Скрин из лаборатории:


Подведём итоги, сегодня вы узнали способ создания меня для игры Корсары. Есть ещё второй способ создания меню, с использованием локации, но я с ним не разбирался, поэтому ничего сказать по этому поводу не могу.

С вами был korsar328, если возникнут трудности - пишите в комментарии, я или другие корсары по мере возможностей дадут ответ на ваш вопрос.

Урок написан специально для форума pirates-life.ru

Спасибо за внимание!


Жизнь - как божественная комедия...

Сообщение отредактировал korsar328 - Пятница, 10.08.2018, 23:02
NathanielДата: Четверг, 09.08.2018, 17:02 | Сообщение # 2
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Весьма годный материал. Тем не менее, нуждается в незначительном редактировании. Я бы подписал с помощью комментариев строки в .ini и .c файлах. Чтобы объяснить совсем уж малознакомому с этими скриптами начинающему мододелу, что где находится и зачем это надо. Особенно это касается .ini-файлов. Я на первых порах очень жёстко терялся в смысле этих строк...

Цитата korsar328 ()
Ставим вот такие параметры

Если мне память не изменяет, для 1024х1024 лучше ставить mips=8. Там прямая пропорциональность: чем больше формат изображения - тем больше и значение mips. Об этом ещё когда-то Tymofei писал на форумах. По Convertor TX есть небольшой мини-мануал, это оттуда.

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


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
korsar328Дата: Пятница, 10.08.2018, 00:42 | Сообщение # 3
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Цитата Nathaniel ()
Если мне память не изменяет, для 1024х1024 лучше ставить mips=8

Я просто сам так сделал, когда ставил другие значения у меня картинка расплывалась

Цитата Nathaniel ()
В нынешней редакции этот текст перекрывает рисунок компаса.

Но это уже кому как будет удобно

Объясню значит строка формата
CreateString(true,"site",VERSION_NUMBER3,FONT_NORMAL,COLOR_NORMAL,400,575,SCRIPT_ALIGN_CENTER,0.9);

значения в их порядке "видимость" "краткое значение строки" "полное значение строки которое будет отображаться в главном меню" "шрифт текста" "цвет текста" "отступ слева" "отступ сверху" "положение текста" "размер текста"

Цитата шрифт текста ()

Я пока нашёл только два, но наверное есть и ещё
FONT_NORMAL - обычный печатный текст
FONT_CAPTION - текст составленный из букв, которые находятся в файле


Цитата цвет текста ()

С цветом такая же история
COLOR_NORMAL - обычный белый цвет
COLOR_MONEY - золотистый цвет


Цитата положение текста ()

С положением текста дело обстоит проще, тут достаточно знать азы работы с CSS
SCRIPT_ALIGN_LEFT - текст слева
SCRIPT_ALIGN_CENTER - текст по центру
SCRIPT_ALIGN_RIGHT - текст справа

Добавлено (10.08.2018, 00:49)
---------------------------------------------
Nathaniel,
А по поводу комментариев в файлах, я считаю что можно методом тыка разобраться, просто блочить строку и смотреть что исчезнет, потом уже разбираться что к чему


Жизнь - как божественная комедия...
NathanielДата: Пятница, 10.08.2018, 17:34 | Сообщение # 4
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
Цитата korsar328 ()
Добавлено...

Так это лучше в первый же пост и добавить.

Цитата korsar328 ()
тут достаточно знать азы работы с CSS

Далеко не все знают о CSS, не учили английский, не знают про left, right и прочее. Я бы это тоже в первый пост добавил...


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
korsar328Дата: Пятница, 10.08.2018, 23:04 | Сообщение # 5
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Цитата Nathaniel ()
Так это лучше в первый же пост и добавить.


Изменения внесены


Жизнь - как божественная комедия...
Alister18Дата: Понедельник, 23.12.2019, 16:18 | Сообщение # 6
Матрос
Группа: Корсар
Сообщений: 24
Награды: 0
Репутация: 0
Статус: В открытом море
Полезный урок!

Пусть час не пробил, жди, не уставая,
Пусть лгут лжецы, не снисходи до них;
Умей прощать и не кажись, прощая,
Великодушней и мудрей других.

Киплинг


Сообщение отредактировал Alister18 - Понедельник, 23.12.2019, 23:17
AlecsV1Дата: Вторник, 17.08.2021, 00:37 | Сообщение # 7
Пороховая обезьяна
Группа: Пират
Сообщений: 4
Награды: 0
Репутация: 0
Статус: В открытом море
кто может подсказать чего не так
[MAIN]
;item = VIDEO,VIDEOBASE
;item = SLIDEPICTURE,BACKSLIDE
item = PICTURE,BACKPICTURE //картинка, в данном случае наш background
item = PICTURE,SEADOGSLOGO //картинка, лого (не знаю зачем оно тут, но пусть будет)

item = TITLE,TITLE // текстовое поле 1
item = TITLE,TITLE_2 //текстовое поле 2
;item = TEXTBUTTON,B_NET //кнопка сетевой игры
item = TEXTBUTTON,B_NEWGAME //кнопка новой игры
;item = TEXTBUTTON,B_RESUMEGAME //кнопка продолжить игру
item = TEXTBUTTON,B_LOAD //кнопка загрузить игру
;item = TEXTBUTTON,B_SAVE //кнопка сохранить игру
item = TEXTBUTTON,B_OPTIONS //кнопка опции
item = TEXTBUTTON,B_CREDITS //кнопка авторы
item = PC,TEXTBUTTON,B_QUIT //кнопка выхода
;item = 410,LANG,Russian,GLOWS,LOGOGLOWS_RUS
item = 120,RECTANGLE,CONFIRM_RECTANGLE
item = 130,FORMATEDTEXT,TEXTWINDOW
item = 132,TEXTBUTTON,CONFIRM_YES_BUTTON //кнопка подтверждения да
item = 132,TEXTBUTTON,CONFIRM_NO_BUTTON // кнопка подтверждения нет
item = 132,TEXTBUTTON,STOP_OK //кнопка стоп
item = 132,TEXTBUTTON,STOP_EXIT //остановить и выйти
start = B_NEWGAME //начать новую игру

[MAIN_WINDOW]
show = 1
nodelist = VIDEOBASE,B_NEWGAME,B_LOAD,B_OPTIONS,B_CREDITS,B_QUIT,EXIT_BTN,BACKPICTURE

[B_NEWGAME]
command = click
command = activate
command = downstep,select:B_LOAD
position = 560,240,780,270
font = interface_button
string = New Game

[B_LOAD]
command = click
command = activate
command = upstep,select:B_NEWGAME
command = downstep,select:B_OPTIONS
position = 560,280,780,310
font = interface_button
string = Load

[B_OPTIONS]
command = click
command = activate
command = upstep,select:B_LOAD
command = downstep,select:B_CREDITS
position = 560,320,780,350
font = interface_button
string = Options

[B_CREDITS]
command = click
command = activate
command = upstep,select:B_OPTIONS
command = downstep,select:B_QUIT
position = 560,360,780,390
font = interface_button
string = Credits

[B_QUIT]
command = click
command = activate
command = upstep,select:B_CREDITS
position = 560,400,780,430
font = interface_button
string = Quit

[EXIT_BTN]
command = click
position = 770,5,795,30
group = ICONS_SPEC
picture = exit button
shadowColor = 0,0,0,0

[BACKPICTURE]
position = 5,20,635,460
textureName = interfaces\black132.tga
;textureName = interfaces\black132.tga

[CONFIRM_EXIT_WINDOW]
show = 0
nodelist = CONFIRM_EXIT_FRAME,CONFIRM_TEXTWINDOW,CONFIRM_YES_BUTTON,CONFIRM_NO_BUTTON,CONFIRM_RECTANGLE

[CONFIRM_EXIT_FRAME]
position = 200,270,600,400

[CONFIRM_TEXTWINDOW]
position = 210,300,590,400
lineSpace = 20
string = Confirm_exit_from_menu

[CONFIRM_YES_BUTTON]
command = activate,event:ExitProgram
command = click,event:ExitProgram
command = rightstep,select:CONFIRM_NO_BUTTON
position = 210,360,395,390
string = Yes

[CONFIRM_NO_BUTTON]
command = activate
command = click
command = leftstep,select:CONFIRM_YES_BUTTON
position = 405,360,590,390
string = No


А.В
korsar328Дата: Суббота, 12.02.2022, 22:53 | Сообщение # 8
Мичман
Группа: Корсар
Сообщений: 102
Награды: 5
Репутация: 30
Статус: В открытом море
Цитата AlecsV1 ()
кто может подсказать чего не так

Тебе нужно комментарии убрать которые через слэш записаны. так как тут подобное не будет работать.


Жизнь - как божественная комедия...

Сообщение отредактировал korsar328 - Суббота, 12.02.2022, 22:53
kacatikДата: Воскресенье, 13.02.2022, 13:03 | Сообщение # 9
Мичман
Группа: Корсар
Сообщений: 93
Награды: 1
Репутация: -31
Статус: В открытом море
Цитата AlecsV1 ()
кто может подсказать чего не так
коментить иначе надо!
не // но ; и с новой строки
у Тебя:
item = PICTURE,BACKPICTURE // картинка, в данном случае наш background
а надо:
;картинка, в данном случае наш background
item = PICTURE,BACKPICTURE
...и тд и тп...
а по сути не читал, сори...


скрипач может не знать нот и играть на слух,
а Я могу не знать скрипт и скрипеть играя наобум!

мудрец среди дураков будет самым глупым
  • Страница 1 из 1
  • 1
Поиск:

Copyright Pirates-Life.Ru © 2008-2024


Семь Футов под Килем - Бухта Корсаров и Пиратов!