1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
|
<chapter id="technical-reference">
<chapterinfo>
<authorgroup>
<author
><firstname
>Eric</firstname
> <surname
>Bischoff</surname
> </author>
<othercredit role="translator"
><firstname
>Marcus</firstname
><surname
>Gama</surname
><affiliation
><address
><email
>marcus_gama@uol.com.br</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
>
</authorgroup>
<date
>10-04-2002</date
> <releaseinfo
>0.03.02</releaseinfo
> <keywordset>
<keyword
>KDE</keyword>
<keyword
>Homem Batata</keyword>
<keyword
>referência técnica</keyword>
</keywordset>
</chapterinfo>
<title
>Referência técnica</title>
<para
>O &ktuberling; oferece uma forma gentil e compensadora de introduzir à personalização e programação do &kde;. O aplicativo pode ser extendido. Por exemplo, sem qualquer codificação, poderão ser adicionados novas áreas de jogo, alterando os arquivos gráficos. Ao adicionar os arquivos de som apropriados, os tradutores poderão alterar os sons para o seu idioma nativo! </para>
<para
>Se você extender ou adicionar ao jogo, por favor considere a possibilidade de enviar as suas adições ao programador <ulink url="mailto:e.bischoff@noos.fr"
>Eric Bischoff</ulink
> de modo a incluí-las nas próximas versões. </para>
<sect1 id="for-artists">
<title
>Para artistas</title>
<para
>O tamanho e a forma da área de jogo, assim como o número de objetos, poderão ser alterados. Poderão ser adicionadas novas áreas de jogos. Só é preciso criar dois arquivos de imagens para cada área de jogo: um tabuleiro de jogo e uma máscara. É permitido um máximo de 8 áreas de jogos, das quais 3 estão sendo usadas atualmente. </para>
<para
>São usadas seis imagens no &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
> e <filename
>aquarium-mask.png</filename
>. A localização padrão destes arquivos é a pasta <filename class="directory"
>$TDEDIR/share/apps/ktuberling/pics/</filename
>. </para>
<para
>O primeiro tipo de imagem, os <filename
>*-game.png</filename
> contém o tabuleiro e os objetos que o usuário seleciona. Este é o gráfico que o usuário vê enquanto joga. </para>
<para
>O segundo tipo de imagens, os <filename
>*-mask.png</filename
>, contém apenas as máscaras dos objetos. Estas máscaras são usadas para delimitar os contornos dos objetos e, em alguns casos, dão ao objeto alguma transparência (por exemplo, os espetáculos). É obrigatório colocar os objetos na mesma posição, tanto no arquivo do tabuleiro como no da máscara. </para>
<para
>Na mesma pasta, um arquivo chamado <filename
>layout.xml</filename
>. (<filename
>$TDEDIR/share/apps/ktuberling/pics/layout.xml</filename
>) indica quais as imagens usar e associa-os aos itens do menu. Contém também os parâmetros de posição da área de jogo e dos objetos no tabuleiro e nas máscaras. Ele atribui também os sons aos objetos e coloca os objetos em grupos. Finalmente, declara os idiomas como sendo conjuntos de sons traduzidos. Este arquivo segue a sintaxe-padrão do XML (ver os detalhes <link linkend="layout-details"
>abaixo</link
>). </para>
<para
>Ainda na mesma pasta existe um arquivo chamado <filename
>layout.i18n</filename
> (<filename
>$TDEDIR/share/apps/ktuberling/pics/layout.i18n</filename
>) que recapitula os textos no <filename
>layout.xml</filename
> que podem ser traduzidos: <itemizedlist>
<listitem
><para
>As entradas de menu que lhe permitem escolher a área de jogo e o idioma</para
></listitem>
<listitem
><para
>Os nomes das categorias de objetos</para
></listitem>
</itemizedlist>
</para>
<para
>Uma pasta mais acima, existe um arquivo chamado <filename
>ktuberlingui.rc</filename
> (<filename
>$TDEDIR/share/apps/ktuberling/ktuberlingui.rc</filename
>), que é um segundo arquivo XML que descreve os menus do &ktuberling;. Ele deverá conter uma marca <markup
><action></markup
> para cada área de jogo e idioma. O nome simbólico da ação neste arquivo deverá ser idêntico ao nome simbólico da ação no <filename
>layout.xml</filename
>. </para>
</sect1>
<sect1 id="for-translators">
<title
>Tradução</title>
<para
>Além do mecanismo normal dos arquivos <literal role="extension"
>.po</literal
> para traduzir os textos do programa e as mensagens, os sons também poderão ser localizados. </para>
<para
>Se os vários tradutores puderem gravar a sua voz para um arquivo <literal role="extension"
>.wav</literal
>, eles poderão gravar esse arquivo para a sub-pasta específica do idioma da pasta de sons. O nome do som é então atribuído a um arquivo no arquivo <filename
>layout.xml</filename
>. Por exemplo, se a idioma de destino é o Português do Brasil, os tradutores poderão gravar a sua voz para os arquivos <literal role="extension"
>.wav</literal
> localizados na pasta <filename
>$TDEDIR/share/apps/ktuberling/sounds/pt_BR</filename
>. Então, eles poderão então atribuir o som chamado <quote
>hat</quote
> ao nome do arquivo <filename
>pt_BR/chapeu.wav</filename
>. </para>
<para
>Numa versão futura, o &ktuberling; irá usar o formato de arquivos OGG Vorbis rc3 para os sons. Atualmente, será possível converter os arquivos WAV para o OGG Vorbis rc3 através da seguinte linha de comando: <screen
><prompt
>$</prompt
> <userinput
>oggenc_rc3 -o <replaceable
>som.ogg</replaceable
> <replaceable
>som.wav</replaceable
></userinput
>
</screen>
</para>
<para
>A informação sobre como lidar com os mecanismos de tradução no &kde; está disponível no <ulink url="http://i18n.kde.org/translation-howto/index.html"
>HOWTO de Traduções do KDE</ulink
>. </para>
</sect1>
<sect1 id="for-programmers">
<title
>Para programadores</title>
<para
>Não é difícil aos programadores extenderem o &ktuberling;.</para>
<sect2 id="classes">
<title
>Classes C++</title>
<variablelist>
<varlistentry>
<term
><classname
>TopLevel</classname
></term>
<listitem>
<para
>Janela de topo e gerenciamento básico do programa</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><classname
>PlayGround</classname
></term>
<listitem>
<para
>Descrição de um dos níveis de jogo</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>ToDraw</classname
></term>
<listitem>
<para
>Uma descrição de um dos <quote
>objetos</quote
> gráficos a serem desenhados</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>SoundFactory</classname
></term>
<listitem>
<para
>Descrição de um dos idiomas e dos seus sons</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>Action</classname
></term>
<listitem>
<para
>Uma das ações do usuário na pilha de desfazer/refazer.</para
> </listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="files-structure">
<title
>Estrutura dos arquivos <literal role="extension"
>.tuberling</literal
></title>
<para
>Um arquivo <literal role="extension"
>.tuberling</literal
> que contém todos os dados necessários para desenhar um boneco. Ele poderá ser editado com um editor de texto normal.</para>
<para
>A primeira linha contém o número do área de jogo.</para>
<para
>Em todas as outras linhas, existe um objeto gráfico por linha, na ordem que é usada para desenhá-los. Cada linha contém 5 números: o identificador do objeto e o retângulo onde deverá ser desenhado (esquerda, cima, direita, baixo). Os números são separados por espaços.</para>
</sect2>
</sect1>
<sect1 id="layout-details">
<title
>Estrutura do arquivo de disposição (<filename
>layout.xml</filename
>)</title>
<para
>A marca do nível de topo é única e chama-se <markup
><ktuberling></markup
>. Ela contém várias marcas <markup
><playground></markup
>, uma para cada área de jogo, bem como várias marcas <markup
><language></markup
>, uma para cada idioma. </para>
<para
>A marca <markup
><playground></markup
> tem dois atributos: o <markup
>gameboard</markup
> e o <markup
>masks</markup
>. Estes atributos contém os nomes dos arquivos que contém as imagens. A marca <markup
><playground></markup
> também contém uma marca <markup
><menuitem></markup
>, uma <markup
><editablearea></markup
> e várias marcas <markup
><category></markup
>, tendo ainda várias marcas <markup
><object></markup
>. </para>
<para
>A marca <markup
><menuitem></markup
> descreve o identificador da ação do item do menu que permite selecionar a posição da área onde poderá soltar os objetos, assim como a legenda deste item do menu. Este identificador de ação deverá ser idêntico ao do <filename
>ktuberlingui.rc</filename
>. </para>
<para
>A marca <markup
><editablearea></markup
> descreve a posição da área onde você poderá soltar os objetos, bem como o nome do som associado a ele. </para>
<para
>A marca <markup
><category></markup
> descreve a posição e o texto que descreve um grupo de objetos. Por exemplo, ela pode descrever a posição e o texto do grupo <quote
>diversos</quote
>. </para>
<para
>A marca <markup
><object></markup
> descreve a posição (no tabuleiro e nas máscaras) de um objeto, assim como o nome do som associado a ele. </para>
<para
>A marca <markup
><language></markup
> tem um atributo: o <markup
>code</markup
>. Este atributo dá o código da localização para esse idioma. A marca <markup
><language></markup
> também contém uma marca <markup
><menuitem></markup
> tag e várias <markup
><sound></markup
>. </para>
<para
>As marcas de nível inferior não são aqui explicadas, uma vez que o seu significado é bastante intuitivo. Se você modificar o arquivo <filename
>layout.xml</filename
>, não se esqueça de modificar o <filename
>layout.i18n</filename
> e o <filename
>ktuberlingui.rc</filename
> de acordo. </para>
</sect1>
</chapter>
|