You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-i18n/tde-i18n-ru/docs/tdegames/ktuberling/technical-reference.docbook

135 lines
13 KiB

<chapter id="technical-reference">
<chapterinfo>
<authorgroup>
<author><firstname>Éric</firstname> <surname>Bischoff</surname> </author>
<othercredit role="translator"><firstname>Кирилл</firstname> <surname>Бирюков</surname><affiliation><address> <email>birk@rdi-kvant.ru</email></address></affiliation> <contrib>Перевод на русский язык</contrib></othercredit> <othercredit role="translator"><firstname>Сергей</firstname> <surname>Миронов</surname><affiliation><address> <email>sergo@bk.ru</email></address></affiliation> <contrib>Обновление перевода</contrib></othercredit>
</authorgroup>
<date>5 мая 2006</date> <releaseinfo>0.05.01</releaseinfo> <keywordset>
<keyword>KDE</keyword>
<keyword>KTuberling</keyword>
<keyword>руководство разработчика</keyword>
</keywordset>
</chapterinfo>
<title>Руководство разработчика</title>
<para>&ktuberling; позволяет легко подключиться к разработке и улучшению &kde;. Приложение может быть дополнено. Например, без всякого кода можно добавить новые рисунки игрового поля, изменив графические файлы. Добавив подходящие звуковые файлы переводчик может изменить звучание на его родной язык! </para>
<para>Если вы что-то разработали или добавили к игре, вышлите это автору <ulink url="mailto:ebischoff@nerim.net">Éric Bischoff</ulink> для включения в следующие версии. </para>
<sect1 id="for-artists">
<title>Художникам</title>
<para>Размер, форма игрового поля и количество объектов можно изменить. Для каждого игрового поля необходимо создать два графических файла: поле изображения поля и маску. В игре допускается до восьми игровых полей, из которых в настоящий момент используется только три. </para>
<para>В &ktuberling; используются шесть изображений:<filename>potato-game.png</filename>,<filename>potato-mask.png</filename>,<filename>penguin-game.png</filename>,<filename>penguin-mask.png</filename>,<filename>aquarium-game.png</filename> и <filename>aquarium-mask.png</filename>. Файлы размещаются в <filename class="directory">$TDEDIR/share/apps/ktuberling/pics/</filename>. </para>
<para>Первый тип рисунков, <filename>*-game.png</filename>, содержит изображения игрового поля и объектов, выбираемых пользователем. Это та графика, которую вы видите в процессе игры. </para>
<para>Второй тип рисунков, <filename>*-mask.png</filename>, содержит только маски объектов. Маски используются для установки границ объектов и в некоторых случаях позволяют объекту быть прозрачным (как, например, очки). Желательно, хотя и не обязательно, размещать объекты на тех же местах в файле игрового поля, что и в файле маски. </para>
<para>В той же папке находится файл <filename>layout.xml</filename> (<filename>$TDEDIR/share/apps/ktuberling/pics/layout.xml</filename>), который описывает используемые файлы, и связывает их с пунктами меню. Кроме того, он описывает позиционные параметры игрового поля и объектов в файлах игрового поля и маски. В том же файле объектам присваиваются звуки и производится объединение объектов в группы. Наконец, в нём описаны языки как наборы переведённых звуков. Файл <filename>layout.xml</filename> является стандартным файлом &XML; (подробнее смотрите <link linkend="layout-details">ниже</link>). </para>
<para>В этой же папке находится файл с именем<filename>layout.i18n</filename> (<filename>$TDEDIR/share/apps/ktuberling/pics/layout.xml</filename>), содержащий строки из файла <filename>layout.xml</filename>, которые могут быть переведены: <itemizedlist>
<listitem><para>Пункты меню, позволяющие выбирать игровое поле и язык</para></listitem>
<listitem><para>Названия категорий объектов</para></listitem>
</itemizedlist>
</para>
<para>В папке выше находится другой файл &XML; <filename>ktuberlingui.rc</filename> (<filename>$TDEDIR/share/apps/ktuberling/ktuberlingui.rc</filename>), описывающий меню &ktuberling;. Он должен содержать один тег <markup>&lt;action&gt;</markup> (действие) на каждое игровое поле и язык. Символическое название действия в этом файле должно быть идентично символическому название действия в файле <filename>layout.xml</filename>. </para>
</sect1>
<sect1 id="for-translators">
<title>Переводчику</title>
<para>Кроме обычного механизма перевода файла <literal role="extension">.po</literal> могут также быть локализованы названия и звуки в программе. </para>
<para>Звуковые файлы в формате <literal role="extension">.wav</literal> с названиями объектов на языке перевода могут быть помещены в подпапке соответствующего языка в основной папке звуков. Имя файла звука затем следует соотнести с названием в файле <filename>layout.xml</filename>. Например, если язык перевода русский, то необходимо поместить звуковые (<literal role="extension">.wav</literal>) файлы с названиями объектов в папку <filename>$TDEDIR/share/apps/ktuberling/sounds/ru</filename>. Затем нужно соотнести звук <quote>hat</quote> с файлом <filename>ru/шляпа.wav</filename>. </para>
<para>В будущей версии &ktuberling; будет использовать файлы OGG Vorbis rc3 для хранения звуков. В настоящий момент можно конвертировать файлы WAV в формат OGG Vorbis rc3 следующей командой: <screen><prompt>$</prompt> <userinput>oggenc -q 10 -o <replaceable>sound.ogg</replaceable> <replaceable>sound.wav</replaceable></userinput>
</screen>
</para>
<para>Информация о том, как переводить приложения &kde;, доступна в <ulink url="http://i18n.kde.org/translation-howto/index.html">Руководстве по переводу kde;</ulink>. </para>
</sect1>
<sect1 id="for-programmers">
<title>Программистам</title>
<para>Программисту не трудно развить и дополнить функциональность &ktuberling;.</para>
<sect2 id="classes">
<title>Классы C++</title>
<variablelist>
<varlistentry>
<term><classname>TopLevel</classname></term>
<listitem>
<para>Окно верхнего уровня и основные функции управления программой</para>
</listitem>
</varlistentry>
<varlistentry>
<term><classname>PlayGround</classname></term>
<listitem>
<para>Описание одного из уровней игры</para> </listitem>
</varlistentry>
<varlistentry>
<term><classname>ToDraw</classname></term>
<listitem>
<para>Описание одного из выводимых графических <quote>объектов</quote></para> </listitem>
</varlistentry>
<varlistentry>
<term><classname>SoundFactory</classname></term>
<listitem>
<para>Описание одного из языков и его звуков</para> </listitem>
</varlistentry>
<varlistentry>
<term><classname>Action</classname></term>
<listitem>
<para>Действие пользователя, связанное с отменой/повтором</para> </listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="files-structure">
<title>Структура файлов <literal role="extension">.tuberling</literal></title>
<para>Файл <literal role="extension">.tuberling</literal> содержит всю необходимую для рисования информацию. Файл можно редактировать обычным текстовым редактором.</para>
<para>Первая строка содержит номер игрового поля.</para>
<para>Все остальные строки содержат по одному графическому объекту, в том порядке, в котором они должны быть нарисованы. Каждая строка содержит 5 чисел: идентификатор объекта и координаты прямоугольника (левая, верхняя, правая, нижняя), в которых будет нарисован объект. Числа разделяются пробелами или символами табуляции.</para>
</sect2>
</sect1>
<sect1 id="layout-details">
<title>Структура файла <filename>layout.xml</filename>.</title>
<para>Тег верхнего уровня является уникальным и называется <markup>&lt;ktuberling&gt;</markup>. В нём содержится несколько тегов игровых полей <markup>&lt;playground&gt;</markup>, по одному на игровое поле, и <markup>&lt;language&gt;</markup> по одному на язык. </para>
<para>Тег <markup>&lt;playground&gt;</markup> имеет два атрибута: <markup>gameboard</markup> и <markup>masks</markup>. Эти атрибуты задают имена файлов, содержащих изображения. Тег <markup>&lt;playground&gt;</markup> также содержит один тег <markup>&lt;menuitem&gt;</markup>, один тег <markup>&lt;editablearea&gt;</markup>, несколько тегов <markup>&lt;category&gt;</markup> и несколько тегов <markup>&lt;object&gt;</markup>. </para>
<para>Тег <markup>&lt;menuitem&gt;</markup> описывает идентификатор действия в пункте меню, позволяющий выбрать положение области, в которую можно помещать объекты, а также название этого пункта меню. Этот идентификатор действия должен совпадать с идентификатором в файле <filename>ktuberlingui.rc</filename>. </para>
<para>Тег <markup>&lt;editablearea&gt;</markup> описывает положение области, в которую вы можете помещать объекты и имя соответствующего звукового файла. </para>
<para>Тег <markup>&lt;category&gt;</markup> указывает положение и текст, описывающий группу объектов. Например, им могут быть описаны положение и текст группы <quote>Шляпы</quote>. </para>
<para>Тег <markup>&lt;object&gt;</markup> описывает положение (в игровом поле и в масках) объекта, и имя соответствующего звукового файла. </para>
<para>Тег <markup>&lt;language&gt;</markup> имеет один атрибут: <markup>code</markup>. Этот атрибут задаёт код языка. Тег <markup>&lt;language&gt;</markup> также содержит один тег <markup>&lt;menuitem&gt;</markup> и несколько тегов <markup>&lt;sound&gt;</markup>. </para>
<para>Здесь не описываются теги более низкого уровня, так как их названия говорят сами за себя. Если измените файл <filename>layout.xml</filename>, то не забывайте соответственно изменять и файлы <filename>layout.i18n</filename> и <filename> ktuberlingui.rc</filename>. </para>
</sect1>
</chapter>