MOLIER ART STUDIO
Пятница, 29.03.2024, 04:51
Приветствую Вас Гость | RSS
 
Главная Каталог статейРегистрацияВход
Форма входа
Меню сайта
Категории раздела
Уроки по WME [30]
Уроки Photoshop [5]
Уроки 3D Studio MAX [32]
Полезные программы [38]
Статьи [19]
Видео с YouTube [26]
Поиск
Подпишись
QUEST
Наша кнопка


[ Получить код баннера]
Реклама

Теги
Друзья сайта
Он лайн книга
форум по WME
Moя Фото Коллекция
Самоделкин, всё для творческих людей
Коллекция Звуков для игр
Моя библиотека
3koroba
Herzeleid
Дракон №3
Игродел
Мир анимашек
mgd-blog
WOlist.ru - каталог качественных сайтов Рунета
Создание игр, Конструкторы игр, Игровые движки
Коллекция Всё Для Игр
Коллекция картинок
Он лайн книга
Новости
Главная » Статьи » Уроки по WME

Работаем с Меню в игре. Урок 5 (15)
Работаем с Меню в игре. Урок 5 (15)

Делаем меню в игре, которое появляется при нажатии "ESC”.
Открываем data\interface\system\mainmenu.window, удаляем всё, как в уроке № 3.
Делаем своё меню. Используем ту же книгу book.png, её вставляем в наше меню, туда же добавляем кнопки с надписями:

Продолжить игру
- "Name”- " close”;
-"Text”- " Продолжить игру ”;

Загрузить игру
- "Name”- "load”;
-"Text”- " Загрузить игру ”;

Сохранить игру
- "Name”- "save”;
-"Text”- "Сохранить игру”;

Выйти из Игры
- "Name”- "quit”;
-"Text”- "Выйти из игры”;

Не забываем о шрифте. 
Должно получится так:



В mainmenu.script должно быть прописано следующее:

#include "scripts\base.inc"
#include "scripts\keys.inc"

////////////////////////////////////////
on "close"
{
  this.Close();
}
/////////////////////////////////////////
on "quit"
{
  if(Game.QuestionBox("Xочеш выйти из Игры ?")) Game.QuitGame();
}

///////////////////////////////////////////
on "Keypress"
{
  var button;
  if(Keyboard.KeyCode==VK_ESCAPE){
  button = this.GetControl("close");
  button.Press();
  }
}
////////////////////////////////////////
on "load"
{
  var WinLoad = Game.LoadWindow("interface\system\load.window");
  WinLoad.Center();
  WinLoad.GoSystemExclusive();
  Game.UnloadObject(WinLoad);
}
////////////////////////////////////////////////////
on "save"
{
  var WinSave = Game.LoadWindow("interface\system\save.window");
  WinSave.Center();
  WinSave.GoSystemExclusive();
  if(WinSave.xResult==true)
  {
  this.Close();
  Game.UnloadObject(WinSave);
  }
  else
  Game.UnloadObject(WinSave);
}


 
Пока не запускаем игру, а в interface/system создаём новый (жмём Add window…) question.window, в Name пишем "question”. Меняем вид, для этого копируем картинку



в data\interface\system\ назовём quit.png. Теперь открываем question.window , как и в предыдущих уроках меняем вид, так как опыт уже есть, просто покажу, то что у меня получилось, для начало:

- question


-дальше message


-Да


-Нет



Возникнут вопросы, пишите на форум.

Да, чуть не забыл в scripts/game.script, вносим изменения, сейчас оно должно выглядеть так:

#include "scripts\base.inc"
#include "scripts\keys.inc"

Keyboard = Game.Keyboard;
Scene = Game.Scene;

global WinMenu = Game.LoadWindow("interface\menu\menu.window");
WinMenu.Visible = false;

var win = Game.LoadWindow("interface\system\caption.window");
global WinCaption = win.GetControl("caption");

global MenuObject = null;

actor = Game.LoadActor("actors\molly\molly.actor");
Game.MainObject = actor;

Game.AttachScript("scripts\game_loop.script");

Game.ChangeScene(Game.StartupScene);

////////////////////////////////////////////////////////////////////////////////
on "LeftClick"
{
  var ActObj = Game.ActiveObject;
  if(ActObj!=null)
  {
  if(ActObj.Type=="item" && Game.SelectedItem==null)
  {
  Game.SelectedItem = ActObj;
  }
  else if(Game.SelectedItem != null && Game.SelectedItem!=ActObj)
  {
  var Item = Game.SelectedItem;
  if(ActObj.CanHandleEvent(Item.Name)) ActObj.ApplyEvent(Item.Name);
  else if(Item.CanHandleEvent("default-use")) Item.ApplyEvent("default-use");
  else if(ActObj.CanHandleEvent("default-use")) ActObj.ApplyEvent("default-use");
  else actor.Talk("I can't use these things together.");
  }
  // just a simple click
  else ActObj.ApplyEvent("LeftClick");
  }
  // else propagate the LeftClick event to a scene
  else
  {
  Scene.ApplyEvent("LeftClick");
  }
}
////////////////////////////////////////////////////////////////////////////////
on "RightClick"
{
  // if inventory item selected? deselect it
  if (Game.SelectedItem != null){
  Game.SelectedItem = null;
  return;
  }
  var ActObj = Game.ActiveObject;

  if(WinMenu.Visible == true) WinMenu.Visible = false;
  else if(ActObj!=null)
  {
  if(ActObj.CanHandleEvent("Take") || ActObj.CanHandleEvent("Talk") || ActObj.CanHandleEvent("LookAt"))
  {
  MenuObject = Game.ActiveObject;
  var Caption = WinMenu.GetControl("caption");
  Caption.Text = MenuObject.Caption;

  WinMenu.X = Game.MouseX - WinMenu.Width / 2;
  if(WinMenu.X < 0) WinMenu.X = 0;
  if(WinMenu.X+WinMenu.Width>Game.ScreenWidth) WinMenu.X = Game.ScreenWidth-WinMenu.Width;

  WinMenu.Y = Game.MouseY - WinMenu.Height / 2;
  if(WinMenu.Y<0) WinMenu.Y = 0;
  if(WinMenu.Y+WinMenu.Height>Game.ScreenHeight) WinMenu.Y = Game.ScreenHeight-WinMenu.Height;

  WinMenu.Visible = true;

  actor.Reset();
  }
  else ActObj.ApplyEvent("RightClick");
  }
}
////////////////////////////////////////////////////////////////////////////////
on "Keypress"
{
  // on Esc or F1 key
  if(Keyboard.KeyCode==VK_ESCAPE || Keyboard.KeyCode==VK_F1)
  {
  // load and display the main menu window
  WinCaption.Visible = false;
  var WinMainMenu = Game.LoadWindow("interface\system\mainmenu.window");
  WinMainMenu.Center();
  WinMainMenu.GoSystemExclusive();
  Game.UnloadObject(WinMainMenu);
  }
}
////////////////////////////////////////////////////////////////////////////////
on "QuitGame"
{
  WinCaption.Visible = false;
  var WinQuit = Game.LoadWindow("interface\system\quit.window");
  WinQuit.Center();
  WinQuit.GoSystemExclusive();

  if(WinQuit.xResult)
  {
  Game.QuitGame();
  }
  else Game.UnloadObject(WinQuit);
}
////////////////////////////////////////////////////////////////////////////////
method QuestionBox(Message, SystemExclusive)
{
 if(SystemExclusive==null) SystemExclusive = true;
 
 var Window = Game.LoadWindow("interface\system\question.window");
 Window.Center();
 Window.xMessage = Game.ExpandString(Message);
 
 if(SystemExclusive) Window.GoSystemExclusive();
 else Window.GoExclusive();
 
 var Result = Window.xResult;
 Game.UnloadObject(Window);
 
 return Result;
}




Теперь проверяем, загружаем игру:
- жмём «начать игру», переходим на первую сцену;
- теперь «ESC», меню игры;
- «Продолжить», возвращаемся на первую сцену;
- опять «ESC»;
- проверяем сразу «Нет», а потом «Да».
Должно всё быть хорошо.
Дальше займёмся «Загрузить», «Сохранить».
  

Категория: Уроки по WME | Добавил: Molier (26.11.2009)
Просмотров: 909 | Комментарии: 1 | Теги: меню, Уроки WME


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Моя книга
$пасибо
Поддержите сайт
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Форум по WME
  • Moя Фото Коллекция
  • Всё для дачников
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Кто on-line?
    Кто нас сегодня посетил
    Пользователи
    Гости
    Статистика стран
    web counter
    free counters
    Глобус
    ClustrMaps
    Счетчики
    Рейтинг@Mail.ru
    Рейтинг сайтов

    Copyright MyCorp © 2024
    !!! На сайте могут находиться статьи, которые, честно и не помню, откуда они у меня появились, одним словом нет информации о первоисточнике и авторе, если на них наткнётся автор, просьба к нему написать мне, чтобы я смог поставить ссылку на источник. !!!