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


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

Как я это делал. Урок 10. Диалоги.

Урок 10 (заключительный). Диалоги.

 

Теперь научим нашего актёра общаться. Наша цель: ответить на пару вопросов и при ответе на правильный вопрос перейти на заключительную сцену (назовём её Room3) и на этом урок будет завершён.

 

 

Открываем data\images\one2.jpg  с помощью Photoshop, вырезаем наше переговорное устройство, при этом размер не изменяем. Теперь на синем фоне рисуем чёрные линии, сохраняем таких три картинки (сохраните в отдельной папке), так чтобы в Gif у нас получилось примерно так (у вас может быть и по другому):

Теперь открываем нашу игру. В папке entities создаём новый Add entity... назовём его peregovor. Копируем наши три картинки в папку \sprites , где в SpriteEdit совмещаем наши картинки и получаем спрайт default.sprite:

Сейчас нам необходимо разместить этот спрайт на нашей сцене Room2. Открываем scenes\Room2\scr\scene_init.script  и добавляем следующее (в тексте красным):
  

#include "scripts\base.inc"

 

actor.SkipTo(400, 400);

actor.Direction = DI_DOWN;

actor.Active = true;

 


global StateRoom2;

 

if(StateRoom2==null)

{

  StateRoom2.Visited = false;

}

 ///

global OldGuy = Scene.LoadEntity("entities\peregovor\peregovor.entity");

OldGuy.SkipTo(516, 187);

 ///

if(!StateRoom2.Visited)

{

  StateRoom2.Visited = true;

}

  

  Подгоняем координаты OldGuy.SkipTo так, чтобы наше переговорное устройство точно разместилось на сцене. Запускаем, проверяем.

 

 А сейчас реализуем наши идеи.

 

Для начала изменим шрифт. Открываем interface\responses.def и меняем шрифт диалога и диалога под курсором (в Response box):

 

Приступим к диалогу

 

Открываем \entities\peregovor\peregovor.script и пишем следующее:

 

 

global StateRoom;

 

///

on "Talk"

{

  GoToObject();

  Game.Interactive = false;

 

 

  if(!StateRoom.TalkedToOldGuy) actor.Talk("Есть, кто живой?");

  else actor.Talk("Есть вопрос.");

  this.Talk("Вам чего?");

 

  StateRoom.TalkedToOldGuy = true;

 

  OldGuyDialogue();

 

  Game.Interactive = true;

}

 

////

function OldGuyDialogue()

{

  var Responses;

  var Selected;

 

  var Loop = true;

 

  while(Loop)

  {

   

    Responses[0] = "Вы кто?";

    Responses[1] = "Можно мне, Вас увидеть?";

    Responses[2] = "Могу я с Вами поболтать?";

    Responses[3] = "Пропустите, меня.";

 

   

    Game.AddResponse(0, Responses[0]);

    Game.AddResponse(1, Responses[1]);

    Game.AddResponse(2, Responses[2]);

    Game.AddResponse(3, Responses[3]);

   

    Selected = Game.GetResponse();

   

    actor.Talk(Responses[Selected]);

 

    if(Selected==0)

    {

      this.Talk("тот кто Тебе поможет освоить Wintermute Engine.");

      actor.Talk("Спасибо.");

    }

    else if(Selected==1) this.Talk("Заходи по адресу http://molier-artstudo.ucoz.ru/");

    else if(Selected==2)

    {

      this.Talk("Ответь на вопрос:");

              this.Talk("Какой формат не поддерживает Wintermute Engine?");

     

      OldGuyDialogue2();

    }

    else if(Selected==3)

    {

      this.Talk("До встречи.");

                Game.ChangeScene("scenes\Room3\Room3.scene");

             

              Loop = false;

    }

  }

}

 

///

function OldGuyDialogue2()

{

  var Responses;

  var Selected;

  var Loop = true;

 

  while(Loop)

  {

   

    Responses[0] = "BMP";

    Responses[1] = "GIF";

    Responses[2] = "TGA";

    Responses[3] = "Хочу немного подумать.";

 

    Game.AddResponse(0, Responses[0]);

    Game.AddResponse(1, Responses[1]);

    Game.AddResponse(2, Responses[2]);

    Game.AddResponse(3, Responses[3]);

   

    Selected = Game.GetResponse();

 

    actor.Talk(Responses[Selected]);

 

    if(Selected==0)

    {

      this.Talk("Подумай.");

    

    }

    else if(Selected==1)

    {

      this.Talk("Хорошо ");

             

       

    }

    else if(Selected==2)

    {

      this.Talk("Подумай.");

    }

    else if(Selected==3) Loop = false;

             

  }

}

 

 

///

on "LookAt"

{

  GoToObject();

  if(!StateRoom.TalkedToOldGuy) actor.Talk("Переговорное устройство.");

  else actor.Talk("Я всё ещё не понимаю, что оно делает здесь.");

}

 

///

on "Take"

{

  GoToObject();

  actor.Talk("Я немогу это взять.");

}

 

////

on "LeftClick"

{

  GoToObject();

}

 

///

function GoToObject()

{

  actor.GoTo(356, 398);

  actor.TurnTo(DI_UPRIGHT);

}
 

 

Так же открываем \peregovor.entity и пишем
 

ENTITY

{

  NAME="peregovor"

  CAPTION="Переоворное устройство"

  ACTIVE=TRUE

  X=200

  Y=200

  SCALABLE=TRUE

  INTERACTIVE=TRUE

  COLORABLE=TRUE

  SPRITE="entities\peregovor\sprites\default.sprite"

  TALK="entities\peregovor\sprites\default.sprite"

 

  SCRIPT="entities\peregovor\peregovor.script"

  FONT = "fonts\comic_blue.font"

}

 
 
 

 

Создаем новую сцену, называем её Room3, запускаем игру, проверяем.

 

Всё должно получиться.

 

 

 

Категория: Уроки по WME | Добавил: Molier (04.10.2009)
Просмотров: 792 | Комментарии: 3 | Теги: диалоги, Уроки WME


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

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


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

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