|
|
<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"
|
|
|
>$KDEDIR/share/apps/ktuberling/pics/</filename
|
|
|
>. </para>
|
|
|
|
|
|
<para
|
|
|
>Первый тип рисунков, <filename
|
|
|
>*-game.png</filename
|
|
|
>, содержит изображения игрового поля и объектов, выбираемых пользователем. Это та графика, которую вы видите в процессе игры. </para>
|
|
|
|
|
|
<para
|
|
|
>Второй тип рисунков, <filename
|
|
|
>*-mask.png</filename
|
|
|
>, содержит только маски объектов. Маски используются для установки границ объектов и в некоторых случаях позволяют объекту быть прозрачным (как, например, очки). Желательно, хотя и не обязательно, размещать объекты на тех же местах в файле игрового поля, что и в файле маски. </para>
|
|
|
|
|
|
<para
|
|
|
>В той же папке находится файл <filename
|
|
|
>layout.xml</filename
|
|
|
> (<filename
|
|
|
>$KDEDIR/share/apps/ktuberling/pics/layout.xml</filename
|
|
|
>), который описывает используемые файлы, и связывает их с пунктами меню. Кроме того, он описывает позиционные параметры игрового поля и объектов в файлах игрового поля и маски. В том же файле объектам присваиваются звуки и производится объединение объектов в группы. Наконец, в нём описаны языки как наборы переведённых звуков. Файл <filename
|
|
|
>layout.xml</filename
|
|
|
> является стандартным файлом &XML; (подробнее смотрите <link linkend="layout-details"
|
|
|
>ниже</link
|
|
|
>). </para>
|
|
|
|
|
|
<para
|
|
|
>В этой же папке находится файл с именем<filename
|
|
|
>layout.i18n</filename
|
|
|
> (<filename
|
|
|
>$KDEDIR/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
|
|
|
>$KDEDIR/share/apps/ktuberling/ktuberlingui.rc</filename
|
|
|
>), описывающий меню &ktuberling;. Он должен содержать один тег <markup
|
|
|
><action></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
|
|
|
>$KDEDIR/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
|
|
|
><ktuberling></markup
|
|
|
>. В нём содержится несколько тегов игровых полей <markup
|
|
|
><playground></markup
|
|
|
>, по одному на игровое поле, и <markup
|
|
|
><language></markup
|
|
|
> по одному на язык. </para>
|
|
|
|
|
|
<para
|
|
|
>Тег <markup
|
|
|
><playground></markup
|
|
|
> имеет два атрибута: <markup
|
|
|
>gameboard</markup
|
|
|
> и <markup
|
|
|
>masks</markup
|
|
|
>. Эти атрибуты задают имена файлов, содержащих изображения. Тег <markup
|
|
|
><playground></markup
|
|
|
> также содержит один тег <markup
|
|
|
><menuitem></markup
|
|
|
>, один тег <markup
|
|
|
><editablearea></markup
|
|
|
>, несколько тегов <markup
|
|
|
><category></markup
|
|
|
> и несколько тегов <markup
|
|
|
><object></markup
|
|
|
>. </para>
|
|
|
|
|
|
<para
|
|
|
>Тег <markup
|
|
|
><menuitem></markup
|
|
|
> описывает идентификатор действия в пункте меню, позволяющий выбрать положение области, в которую можно помещать объекты, а также название этого пункта меню. Этот идентификатор действия должен совпадать с идентификатором в файле <filename
|
|
|
>ktuberlingui.rc</filename
|
|
|
>. </para>
|
|
|
|
|
|
<para
|
|
|
>Тег <markup
|
|
|
><editablearea></markup
|
|
|
> описывает положение области, в которую вы можете помещать объекты и имя соответствующего звукового файла. </para>
|
|
|
|
|
|
<para
|
|
|
>Тег <markup
|
|
|
><category></markup
|
|
|
> указывает положение и текст, описывающий группу объектов. Например, им могут быть описаны положение и текст группы <quote
|
|
|
>Шляпы</quote
|
|
|
>. </para>
|
|
|
|
|
|
<para
|
|
|
>Тег <markup
|
|
|
><object></markup
|
|
|
> описывает положение (в игровом поле и в масках) объекта, и имя соответствующего звукового файла. </para>
|
|
|
|
|
|
<para
|
|
|
>Тег <markup
|
|
|
><language></markup
|
|
|
> имеет один атрибут: <markup
|
|
|
>code</markup
|
|
|
>. Этот атрибут задаёт код языка. Тег <markup
|
|
|
><language></markup
|
|
|
> также содержит один тег <markup
|
|
|
><menuitem></markup
|
|
|
> и несколько тегов <markup
|
|
|
><sound></markup
|
|
|
>. </para>
|
|
|
|
|
|
<para
|
|
|
>Здесь не описываются теги более низкого уровня, так как их названия говорят сами за себя. Если измените файл <filename
|
|
|
>layout.xml</filename
|
|
|
>, то не забывайте соответственно изменять и файлы <filename
|
|
|
>layout.i18n</filename
|
|
|
> и <filename
|
|
|
> ktuberlingui.rc</filename
|
|
|
>. </para>
|
|
|
|
|
|
</sect1>
|
|
|
</chapter>
|