Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
08.01.2006 18:02

haM3r
Участник
Зарегистрирован: 19.05.2004
Сообщений: 11

Новый движок для создания текстовых квестов.

Появилась довольно смелая идея. Написать новый движок для создания текстовых квестов. Что-то наподобие URQ. Но более простой и удобный. Опыт в создание интерпритаторов уже есть. Кое-какие нароботки есть, но до готовой версии далеко... Так вот главная проблема - это решение, как будет выглядеть сам язык. Если кто-нибудь хочет помочь советом, пишите письма.

Я тут немного подумал, над тем как будет выглядеть программа и пришёл к такому варианту(просто пример):

Код:

//#TQ_PROJECT 
/* 
  Пример многострочного комментария. 

  Пример простейшей программы квеста. 
  Автор: haM3r 
  E-mail: bvlad36@bk.ru 
*/ 

// Пример подключения дополнительной библиотеки. 
// Проект можно разбивать отдельные на файлы. 
 #include "scene_1.tq"; 
 #include "scene_2.tq"; 
 #include "scene_3.tq"; 


/* 
  Пример работы с #define. 
  #define - автозамена текста. Довольно полезная вещь. 
  Можно сказать  #define "btn", "button"; и использовать 
  во всей программе заместо button - btn. 
*/ 
 #define "btn", "button"; 



//———————————————————————- 
/* 
  Пример локации. 
  Локация должна начинаться со слова location или room 
  и заканчиваться end. 
  <main> - указывает на то, что с этой локации начинает 
  работать программа. 
*/ 
location [first_location] <main> 

   // Устанавливаем цвет текста. 
   textcolor 5; 

   // Проиграть звуковой wav файл. 
   play "sound.wav"; 

   // Вывод сообщения на экран. 
   print "Первая локацияn"; 

      button room_1, "@Wкомната-1"; 
      button room_2, "@Bкомната-2"; 
      button room_3, "@Rкомната-3"; 
end; 

//———————————————————————- 

room [room_1] 
   // Проигрывание звукового сигнала. 
   beep; 

   print "В комнате 1 вас убили!n", 
         "Какая досада!n", 
         "Попробуйте ещё раз.n"; 

   // Заснуть на 1 секунду. 
   sleep 1000; 

   // Выход из программы. 
   exit; 
end; 


procedure getkey 
   print "Press any key..."; 

   // Считывание клавиши. 
   key = readkey; 

   print "key = ", key; 
end; 

room [room_2] 
   // Отчистка экрана. 
   cls; 

   // Вызов процедуры. 
   call getkey; 

   // Сохранение состояния программы. 
   save; 

   btn first_location, "Назад"; 
end; 


room [room_3] 
   a = 10; 
   b = "test"; 
   print "This is" + b + "n"; 


   :label_1 
   // Пример цикла.    
   while (a > 0) 
   { 
      print a, "n" 

      // Пример условного оператора. 
      if (a == 3) 
      { 
         print "That's All!n"; 
         break; 
      } 
      a = a - 1; 
   } 

   if (a > 0) 
      goto label_1; 

   exit; 
end; 

Неактивен

0    0    #2
19.01.2006 04:37

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Новый движок для создания текстовых квестов.

qwerty написал:

даже в обучающем примере "три медведя" и то есть недодумки

Трех медведей я писал через три недели знакомства с системой, сразу после того как её перевел. Собственно, на медведях была первая обкатка перевода. Так что нечего удивляться качеству игры. Более того, она не  использует всех фич, накопленных более чем за два года дальнейшей доработки РТАДСа.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru