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
>Éric</firstname
> <surname
>Bischoff</surname
> </author>
<othercredit role="translator"
><firstname
>Andrea</firstname
><surname
> Celli</surname
><affiliation
><address
><email
>a.celli@caltanet.it</email
></address
></affiliation
><contrib
>Traduzione della documentazione tecnica</contrib
></othercredit
>
</authorgroup>
<date
>05-05-2006</date
> <releaseinfo
>0.05.01</releaseinfo
> <keywordset>
<keyword
>KDE</keyword>
<keyword
>KTuberling</keyword>
<keyword
>documentazione tecnica</keyword>
</keywordset>
</chapterinfo>
<title
>Documentazione tecnica</title>
<para
>&ktuberling; fornisce un'introduzione agevole e gratificante alla programmazione e personalizzazione in &kde;. Questa applicazione può essere estesa. Per esempio, si possono introdurre nuove scene cambiando i file grafici, senza bisogno di programmare. Aggiungendo gli appropriati file sonori, i traduttori possono mettere i commenti sonori nella propria lingua. </para>
<para
>Se introduci estensioni o aggiunte al gioco, considera l'idea di inviare i tuoi contributi allo sviluppatore <ulink url="mailto:ebischoff@nerim.net"
>Éric Bischoff</ulink
> affinché li includa nelle prossime versioni. </para>
<sect1 id="for-artists">
<title
>Per gli artisti</title>
<para
>La dimensione e l'aspetto della scena e il numero degli oggetti possono essere cambiati. Nuove scene possono essere aggiunte. Servono solo due file grafici per ogni scena: un piano di gioco e una maschera. Si possono usare fino a 8 scene, delle quali al momento ne sono presenti solo tre. </para>
<para
>In &ktuberling; ci sono sei file grafici: <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
>. La collocazione abituale per questi file è la cartella <filename class="directory"
>$TDEDIR/share/apps/ktuberling/pics/</filename
>. </para>
<para
>Il primo tipo di immagini, <filename
>*-game.png</filename
> contiene la scena e gli oggetti che il giocatore può selezionare. Questa è la grafica che il giocatore vede quando gioca. </para>
<para
>Il secondo tipo di immagini, <filename
>*-mask.png</filename
>, contiene solo maschere degli oggetti. Le maschere sono usate per delimitare i bordi degli oggetti e, talora, per dare agli oggetti un po' di trasparenza (ad es. gli occhiali). È indispensabile mettere nella stessa posizione gli oggetti e le relative maschere nei due tipi di file. </para>
<para
>Nella stessa cartella, un file chiamato <filename
>layout.xml</filename
>. (<filename
>$TDEDIR/share/apps/ktuberling/pics/layout.xml</filename
>) dice quali immagini usare e le collega alle voci del menu. Esso contiene anche i parametri posizionali della scena e degli oggetti nel piano di gioco e nelle maschere. Assegna i suoni agli oggetti e classifica gli oggetti in gruppi. Esso, infine, dichiara i linguaggi come insiemi di suoni tradotti. È scritto seguendo la sintassi &XML; standard (per i dettagli vedi <link linkend="layout-details"
>più avanti</link
>). </para>
<para
>Sempre nella stessa cartella, un file chiamato <filename
>layout.i18n</filename
> (<filename
>$TDEDIR/share/apps/ktuberling/pics/layout.xml</filename
>) riporta le stringhe del file <filename
>layout.xml</filename
> che possono essere tradotte: <itemizedlist>
<listitem
><para
>Le voci del menu che permettono di scegliere le scene e la lingua</para
></listitem>
<listitem
><para
>i nomi delle categorie di oggetti</para
></listitem>
</itemizedlist>
</para>
<para
>In un'altra cartella, un file chiamato <filename
>ktuberlingui.rc</filename
> (<filename
>$TDEDIR/share/apps/ktuberling/ktuberlingui.rc</filename
>) è un secondo file &XML; che descrive i menu di &ktuberling;. Dovrebbe contenere un tag <markup
><action></markup
> per ogni scena e lingua. Il nome simbolico dell'azione in questo file dovrà essere identico al nome simbolico dell'azione in <filename
>layout.xml</filename
>. </para>
</sect1>
<sect1 id="for-translators">
<title
>Traduzione</title>
<para
>Oltre all'abituale sistema dei file <literal role="extension"
>.po</literal
> per tradurre messaggi e richieste del programma, occorrerà localizzare anche i file sonori. </para>
<para
>I vari traduttori possono registrare la loro voce su file <literal role="extension"
>.wav</literal
>, che poi possono collocare nella sotto-cartella riservata alla loro lingua della cartella sounds. Il nome del file audio verrà poi tradotto nel file <literal role="extension"
>.po</literal
>. Per esempio, se la lingua da usare fosse l'italiano, i traduttori possono registrare la loro voce in file <literal role="extension"
>.wav</literal
> da mettere in <filename
>$TDEDIR/share/apps/ktuberling/sounds/it</filename
>. Poi, tradurranno i nomi di file come <filename
>en/hat.wav</filename
> in qualcosa tipo <filename
>it/cappello.wav</filename
>. </para>
<para
>In una versione futura, &ktuberling; userà il formato di file OGG Vorbis rc3 per i suoni. In quel momento, sarà possibile convertire i file WAV in file OGG Vorbis rc3 usando la seguente riga di comando: <screen
><prompt
>$</prompt
> <userinput
>oggenc -q 10 -o <replaceable
>sound.ogg</replaceable
> <replaceable
>sound.wav</replaceable
></userinput
>
</screen>
</para>
<para
>Le informazioni su come utilizzare i meccanismi di traduzione per &kde; sono disponibili nel <ulink url="http://i18n.kde.org/translation-howto/index.html"
>&kde; Translation HOWTO</ulink
>. </para>
</sect1>
<sect1 id="for-programmers">
<title
>Per i programmatori</title>
<para
>Non è molto difficile per un programmatore estendere &ktuberling;.</para>
<sect2 id="classes">
<title
>Classi C++</title>
<variablelist>
<varlistentry>
<term
><classname
>TopLevel</classname
></term>
<listitem>
<para
>Gestione a alto livello della finestra e del programma base</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><classname
>PlayGround</classname
></term>
<listitem>
<para
>Descrizione di uno dei livelli di gioco</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>ToDraw</classname
></term>
<listitem>
<para
>Descrizione di uno degli <quote
>oggetti</quote
> grafici da disegnare.</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>SoundFactory</classname
></term>
<listitem>
<para
>Descrizione di una lingua e dei suoi suoni</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>Action</classname
></term>
<listitem>
<para
>Una delle manipolazioni dell'utente sullo stack annulla/rifai</para
> </listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="files-structure">
<title
>struttura dei file <literal role="extension"
>.tuberling</literal
></title>
<para
>Un file <literal role="extension"
>.tuberling</literal
> contiene tutti i dati necessari per ridisegnare un uomo-patata. Esso può essere modificato con un normale editor di testi.</para>
<para
>La prima riga contiene il numero progressivo della scena.</para>
<para
>Su tutte le altre righe, viene messo un oggetto per riga, nell'ordine in cui verranno disegnati. Ogni riga contiene 5 numeri: l'identificatore dell'oggetto e il rettangolo all'interno del quale verrà disegnato (sinistra, alto, destra, basso). I numeri sono separati da spazi.</para>
</sect2>
</sect1>
<sect1 id="layout-details">
<title
>Struttura del file di formattazione (<filename
>layout.xml</filename
>)</title>
<para
>Il tag di livello superiore è unico e si chiama <markup
><ktuberling></markup
>. Esso contiene diversi tag del tipo <markup
><playground></markup
>, uno per ogni scena, e del tipo <markup
><language></markup
>, uno per ogni lingua. </para>
<para
>Il tag <markup
><playground></markup
> ha due attributi: <markup
>gameboard</markup
> e <markup
>masks</markup
>. Questi attributi assegnano i nomi dei file che contengono i disegni. Il tag <markup
><playground></markup
> contiene anche un tag <markup
><menuitem></markup
>, un tag <markup
><editablearea></markup
>, diversi tag <markup
><category></markup
> e diversi tag <markup
><object></markup
>. </para>
<para
>Il tag <markup
><menuitem></markup
> descrive l'action identifier della voce di menu che permette di selezionare il punto della scena dove vuoi disporre l'oggetto, e l'etichetta di questa voce del menu. Questo action identifier deve essere identico a quello in <filename
>ktuberlingui.rc</filename
>. </para>
<para
>Il tag <markup
><editablearea></markup
> descrive la posizione della scena dove si possono porre gli oggetti e il nome del suono associato. </para>
<para
>Il tag <markup
><category></markup
> descrive la posizione e l'etichetta di un testo che descrive un gruppo di oggetti. Per esempio, esso può descrivere la posizione e il testo del gruppo degli <quote
>ornamenti</quote
>. </para>
<para
>Il tag <markup
><object></markup
> descrive la posizione (nel piano di gioco e nella maschera) di un oggetto e del suono associato ad esso. </para>
<para
>Il tag <markup
><playground></markup
> ha un attributo: <markup
>code</markup
>. Questo attributo assegna il codice per la localizzazione di quel linguaggio. Il tag <markup
><playground></markup
> contiene anche un tag <markup
><menuitem></markup
> e diversi tag <markup
><sound></markup
>. </para>
<para
>I tag di livello inferiore non saranno spiegati qui, in quanto il loro significato è abbastanza ovvio. Se modifichi <filename
>layout.xml</filename
>, non dimenticarti di modificare coerentemente <filename
>layout.i18n</filename
> e <filename
>ktuberlingui.rc</filename
>. </para>
</sect1>
</chapter>
|