Главная » Статьи » Статьи других игроделов. |
Урок по созданию текстового меню от Fade'a
Сегодня я расскажу Вам о том, как создать мультиязычное, текстовое меню с настройками, абсолютно без графики, чисто на коде. Итак поехали! Создаём объекты без спрайтов: o_main - сам объект, в котором будет наше дальнейшее меню. o_settings - здесь будут настройки языка и экрана. Создаём фон: fnt_russian С объектами разобрались, теперь переходим к написанию кода. Открываем объект o_main и ему в Create пишем: menu = 'main' //переменная, которая будет служить переходом между меню. В самом начале она равна 'main' select = 1 /*Текущий выбор пункта меню. допустим пункты в меню идут в такой последовательности: New Game Load Game Quit Тогда значит, если select будет равняться двум, будет выбран второй пункт меню "Load Game". Думаю мою логику и принцип поняли. */ maxbtn = 5 //Переменная служит для того, что-бы в определённом меню задавать определённое кол-во пунктов меню, чтобы например, если select == 5, а пунктов меню всего 3, то указатель просто исчезнет с вида. menu_x = 250 //Положение меню по оси Х menu_y = 240 //Положение меню по оси У title_x = 250 //Положение названия меню по оси Х title_y = 210/ /Положение названия меню по оси У //Далее создаём переменные, содержащие текст, который будет использоваться в меню text_new_game = 'New Game' //Пункт "Новая игра" text_load = 'Load' // Пункт "Загрузить" text_info = 'About' //Ну и так далее... text_quit = 'Quit' text_continue = 'Continue' text_main_menu = 'Main Menu' text_options = 'Options' text_language = 'Language' text_back = 'Back' text_screen = 'Resolution' text_pause = 'Pause' Переменные объявили, теперь переходим в Step этого-же объекта.
Code if keyboard_check_pressed(vk_up) {select -= 1} //Если нажата стрелка UP, то уменьшаем переменную выбора пунктов на 1 if keyboard_check_pressed(vk_down) {select += 1} //Если нажата стрелка DOWN, то увеличиваем переменную выбора пунктов на 1 if select > maxbtn {select = 1} //Тут делаем ограничение выбора пунктов, в зависимости от меню if select < 1 {select = maxbtn} if global.resolution > 2 {global.resolution = 1} //Тут делаем ограничение переменной настроек экрана if global.resolution < 1 {global.resolution = 2} if global.switch_language > 2 {global.switch_language = 1} //Тут делаем ограничение переменной смены языка if global.switch_language < 1 {global.switch_language = 2} //Теперь переходим к созданию настройки переключения языка if global.switch_language == 1 { //Если переменная настр. языка равна 1, то переменным текста присваиваем англ. текст text_new_game = 'New Game' text_load = 'Load' text_info = 'About' text_quit = 'Quit' text_continue = 'Continue' text_main_menu = 'Main Menu' text_options = 'Options' if global.switch_language == 1 text_language = 'Language: English' text_back = 'Back' if global.resolution == 1 text_screen = 'Fullscreen: off' if global.resolution == 2 text_screen = 'Fullscreen: on' text_pause = 'Pause' } if global.switch_language == 2 {//Если переменная настр. языка равна 2, то переменным текста присваиваем рус. текст text_new_game = 'Новая игра' text_load = 'Загрузить' text_info = 'О игре' text_quit = 'Выход' text_continue = 'Продолжить' text_main_menu = 'Главное меню' text_options = 'Опции' if global.switch_language == 2 text_language = 'Язык: Русский' text_back = 'Назад' if global.resolution == 1 text_screen = 'Фуллскрин: выкл.' if global.resolution == 2 text_screen = 'Фуллскрин: вкл.' text_pause = 'Пауза' } //Параметры разрешения экрана rm = room_get_name(self) if global.resolution == 1 { //если переменная разр. экрана равна 1, то переводим игру в оконный режим window_set_fullscreen(0) } if global.resolution == 2 { window_set_fullscreen(1)//если переменная разр. экрана равна 2, то переводим игру в полноэкранный режим window_set_sizeable(1) } if menu == 'options' {maxbtn = 3} //Тут для каждого меню устанавливаем кол-во пунктов if menu == 'menu' {maxbtn = 5} if menu == 'pause' {maxbtn = 2} if keyboard_check_pressed(vk_escape) { //Если нажата клавиша Enter и мы в игре, то объекты деактивируются и игра переходит в режим паузы if menu == 'game' { instance_deactivate_all(true) menu = 'pause' } } if keyboard_check_pressed(vk_enter) { if menu == 'main' { if select == 1 {room_goto(level_1); menu = 'game'} if select == 2 {/*game_load('gamesave.inc')*/menu = 'options' select = 0} if select == 3 {menu = 'options'} if select == 4 {show_info()} if select == 5 {game_end()} } if menu == 'pause' { if select == 1 {instance_activate_all(); menu = 'game'} if select == 2 {menu = 'main'; maxbtn = 5; select = 0} } if menu == 'options' { if select == 1 {global.switch_language += 1} if select == 2 {global.resolution += 1} if select == 3 {menu = 'main'; maxbtn = 5; select = 0} } } Потом создаём событие Draw и вставляем туда код: Code draw_set_font(fnt_russian) draw_text(100,100,""+string(menu)) if menu == 'main' { draw_text(title_x,title_y,""+string(text_main_menu)) draw_line(250,233,350,233) if select == 1 {draw_text(menu_x,menu_y,"> "+string(text_new_game)+"#"+string(text_load)+"#"+string(text_options)+"#"+string(text_info)+"#"+string(text_quit))} if select == 2 {draw_text(menu_x,menu_y,""+string(text_new_game)+"#> "+string(text_load)+"#"+string(text_options)+"#"+string(text_info)+"#"+string(text_quit))} if select == 3 {draw_text(menu_x,menu_y,""+string(text_new_game)+"#"+string(text_load)+"#> "+string(text_options)+"#"+string(text_info)+"#"+string(text_quit))} if select == 4 {draw_text(menu_x,menu_y,""+string(text_new_game)+"#"+string(text_load)+"#"+string(text_options)+"#> "+string(text_info)+"#"+string(text_quit))} if select == 5 {draw_text(menu_x,menu_y,""+string(text_new_game)+"#"+string(text_load)+"#"+string(text_options)+"#"+string(text_info)+"#> "+string(text_quit))} } if menu == 'options' { draw_text(title_x,title_y,""+string(text_options)) draw_line(250,233,350,233) if select == 1 {draw_text(menu_x,menu_y,"> "+string(text_language)+"#"+string(text_screen)+"##"+string(text_back))} if select == 2 {draw_text(menu_x,menu_y,""+string(text_language)+"#> "+string(text_screen)+"##"+string(text_back))} if select == 3 {draw_text(menu_x,menu_y,""+string(text_language)+"#"+string(text_screen)+"##> "+string(text_back))} } if menu == 'pause' { draw_text(title_x,title_y,""+string(text_pause)) draw_line(250,233,350,233) if select == 1 {draw_text(menu_x,menu_y,"> "+string(text_continue)+"#"+string(text_main_menu))} if select == 2 {draw_text(menu_x,menu_y,""+string(text_continue)+"#> "+string(text_main_menu))} } Открываем объект o_settings и ему в Create пишем: Code global.language = 'English' global.resolution = 1 global.switch_language = 1 Поздравляю! Вы создали текстовое меню! Источник: http://gcup.ru/forum/36-14581-1 | |
Просмотров: 470
| Теги: |
Всего комментариев: 0 | |