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
|
<chapter id="technical-reference">
<chapterinfo>
<authorgroup>
<author
><firstname
>Eric</firstname
> <surname
>Bischoff</surname
> </author>
&Niels.Reedijk;
</authorgroup>
<date
>2002-04-10</date
> <releaseinfo
>0.03.02</releaseinfo
> <keywordset>
<keyword
>KDE</keyword>
<keyword
>KTuberling</keyword>
<keyword
>technische referentie</keyword>
</keywordset>
</chapterinfo>
<title
>Technische referentie</title>
<para
>&ktuberling; biedt een elegante en belonende inleiding in het programmeren voor en aanpassen van &kde;. Het programma kan worden uitgebreid. Bijvoorbeeld, zonder dat u hoeft te programmaren kunt u nieuwe speelvelden toevoegen door de grafische bestanden te wijzigen. Door de juiste geluidsbestanden kunnen vertalers de geluiden aanpassen aan hun eigen taal! </para>
<para
>Als u het spel uitbreidt, overweeg dan om uw toevoegingen te sturen aan de ontwikkelaar <ulink url="mailto:e.bischoff@noos.fr"
>Eric Bischoff</ulink
> zodat ze in toekomstige versies kunnen worden bijgesloten. </para>
<sect1 id="for-artists">
<title
>Voor artiesten</title>
<para
>De grootte en vorm van het speelveld en het aantal objecten kan worden gewijzigd. Nieuwe speelvelden kunnen worden toegevoegd. U hoeft slechts twee afbeeldingsbestanden te maken voor elk speelveld: een spelbord en een masker. Er zijn maximaal 8 speelvelden mogelijk, waarvan momenteel slechts 3 worden gebruikt. </para>
<para
>Er worden zes afbeeldingen gebruikt in &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
> en <filename
>aquarium-mask.png</filename
>. De standaardlocatie voor deze bestanden is de map <filename class="directory"
>$KDEDIR/share/apps/ktuberling/pics/</filename
>. </para>
<para
>Het eerste type afbeeldingen, <filename
>*-game.png</filename
> bevatten het speelveld en de objecten die de gebruiker selecteert. Het is de illustratie die de gebruiker ziet tijdens het spelen van het spel. </para>
<para
>Het tweede type afbeeldingen, <filename
>*-mask.png</filename
> bevat alleen de masker van de objecten. De maskers worden gebruikt om de randen van de objecten te bepalen, en, in sommige gevallen, het object enige transparantie te geven (bijv. de brillenglazen). Het is vereist dat de objecten op dezelfde positie in het spelbord-bestand en maskerbestand worden geplaatst. </para>
<para
>In dezelfde map is een bestand genaamd <filename
>layout.xml</filename
> te vinden (<filename
>$KDEDIR/share/apps/ktuberling/pics/layout.xml</filename
>). Dit bestand vertelt welke afbeeldingen gebruikt dienen te worden en koppelt ze aan menuopties. Het bevat ook de positieparameters van het speelveld en de objecten in het spelbord en in de maskers. Het koppelt de geluiden aan objecten en plaatst de objecten in groepen. Tot slot declareert het talen als sets vertaalde geluiden. Het volgt de standaard XML-syntaxis (<link linkend="layout-details"
>zie hieronder voor meer details</link
>). </para>
<para
>In dezelfde map bevindt zich ook een bestand genaamd <filename
>layout.i18n</filename
> (<filename
>$KDEDIR/share/apps/ktuberling/pics/layout.i18n</filename
>). Deze bevat de tekenreeksen uit <filename
>layout.xml</filename
> die kunnen worden vertaald: <itemizedlist>
<listitem
><para
>De menuopties die gebruikt worden om het speelveld en de taal te selecteren</para
></listitem>
<listitem
><para
>De namen van de objectcategorieën</para
></listitem>
</itemizedlist>
</para>
<para
>Een map hoger bevindt zich een bestand genaamd <filename
>ktuberlingui.rc</filename
> (<filename
>$KDEDIR/share/apps/ktuberling/ktuberlingui.rc</filename
>). Dit is een XML-bestand dat de menu's van &ktuberling; beschrijft. Dit bestand dient één <markup
><action></markup
>-tag per speelveld en taal te bevatten. De symbolische naam van de actie in dit bestand dient identiek te zijn aan de symbolische naam van de actie in <filename
>layout.xml</filename
>. </para>
</sect1>
<sect1 id="for-translators">
<title
>Vertaling</title>
<para
>Naast de gebruikelijke mechanisme met <literal role="extension"
>.po</literal
>-bestanden voor het vertalen van programmateksten en documentatie kunnen ook de geluiden worden overgezet naar andere talen. </para>
<para
>Als vertalers hun stem kunnen opnemen als <literal role="extension"
>.ogg</literal
> of <literal role="extension"
>.wav</literal
>-bestand dan kunnen ze deze opslaan in de taalspecifieke submap van de geluidenmap. (<literal role="extension"
>.wav</literal
>-bestanden dient u eerst om te zetten naar <literal role="extension"
>.ogg</literal
>, lees verderop in de documentatie hoe u dat doet.) De naam van het geluid dient dan te worden toegewezen aan een bestand in het bestand <filename
>layout.xml</filename
>. Bijvoorbeeld, als de doeltaal Italiaans is, dan kunnen de vertalers hun stem opnemen in <literal role="extension"
>.ogg</literal
>-bestanden in de map <filename
>$KDEDIR/share/apps/ktuberling/sounds/it</filename
>. Vervolgens kunnen ze het geluid genaamd <quote
>hat</quote
> toewijzen aan de bestandsnaam <filename
>it/cappello.ogg</filename
>. </para>
<para
>De huidige versies van &ktuberling; maken gebruik van het bestandsformaat OGG Vorbis rc3 voor de geluiden. U kunt uw WAV-bestanden omzetten naar OGG Vorbis rc3 door middel van het volgende commando: <screen
><prompt
>$</prompt
> <userinput
>oggenc_rc3 -o <replaceable
>geluid.ogg</replaceable
> <replaceable
>geluid.wav</replaceable
></userinput
>
</screen>
</para>
<para
>Informatie over hoe u gebruik kunt maken met de vertaalmechanismen van &kde; is beschikbaar in <ulink url="http://i18n.kde.org/translation-howto/index.html"
>The KDE Translation HOWTO</ulink
>. Kijk ook op de vertalerswebsite van het <ulink url="http://www.kde.nl/helpen/vertaling.html"
>Nederlandse KDE-team</ulink
>. </para>
</sect1>
<sect1 id="for-programmers">
<title
>Voor programmeurs</title>
<para
>&ktuberling; is voor programmeurs niet moeilijk om uit te breiden.</para>
<sect2 id="classes">
<title
>C++-klassen</title>
<variablelist>
<varlistentry>
<term
><classname
>TopLevel</classname
></term>
<listitem>
<para
>TopLevel window en basic program management</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><classname
>PlayGround</classname
></term>
<listitem>
<para
>Beschrijving van een van de spelniveaus</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>ToDraw</classname
></term>
<listitem>
<para
>Beschrijving van een van de grafische <quote
>objecten</quote
> om te tekenen</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>SoundFactory</classname
></term>
<listitem>
<para
>Beschrijving van een van de talen en diens geluiden</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>Action</classname
></term>
<listitem>
<para
>Een van de gebruikers' manipulatie in de undo/redo stack</para
> </listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="files-structure">
<title
>Bestandsstructuur van <literal role="extension"
>.tuberling</literal
></title>
<para
>Een <literal role="extension"
>.tuberling</literal
>-bestand bevat alle nodige gegevens om een tuberling te hertekenen. Het kan worden bewerkt met een doorsnee teksteditor.</para>
<para
>De eerste regel bevat het nummer van het speelveld.</para>
<para
>Op alle andere regels is er een grafisch object per regel, in de volgorde die is gebruikt om ze te tekenen. Elke regel bevat 5 getallen: de identifier van het object en de rechthoek waar het getekend dient te worden (links, boven, rechts, onder). De getallen worden van elkaar gescheiden met witruimtes.</para>
</sect2>
</sect1>
<sect1 id="layout-details">
<title
>De structuur van het layout-bestand (<filename
>layout.xml</filename
>)</title>
<para
>De tag top-level is uniek en heet <markup
><ktuberling></markup
>. Het bevat enkele <markup
><playground></markup
>-tags, een per speelveld, en enkele <markup
><language></markup
>-tags, een per taal. </para>
<para
>De tag <markup
><playground></markup
> heeft twee attributen: <markup
>gameboard</markup
> en <markup
>masks</markup
>. Deze attributen geven de naam van de bestanden die de afbeeldingen bevatten. De tag <markup
><playground></markup
> bevat ook een <markup
><menuitem></markup
>-tag, een <markup
><editablearea></markup
>-tag, meerdere <markup
><category></markup
>-tags en enkele <markup
><object></markup
>-tags. </para>
<para
>De tag <markup
><menuitem></markup
> beschrijft de action identifier van de menuoptie voor het selecteren van de positie ban het gebied waar u objecten kan plaatsen, en het label voor deze menuoptie. Deze action identifier dient identiek te zijn aan degene in <filename
>ktuberlingui.rc</filename
>. </para>
<para
>De tag <markup
><editablearea></markup
> beschrijft de positie van het gebied waar u objecten kunt plaatsen, en de naam van het geluid dat er mee is geassocieerd. </para>
<para
>De tag <markup
><category></markup
> beschrijft de positie en het label van een tekst die een groep objecten beschrijft. Bijvoorbeeld, het kan de positie en de tekst van de groep met <quote
>hebbedingetjes</quote
> beschrijven. </para>
<para
>De tag <markup
><object></markup
> beschrijft de positie (in het spelbord en in de maskers) van een object en de naam van het bijhorende geluid. </para>
<para
>De tag <markup
><language></markup
> bevat één attribuut: <markup
>code</markup
>. Dit attribuut geeft de code van de taal. De tag <markup
><language></markup
> bevat een <markup
><menuitem></markup
>-tag en enkele <markup
><sound></markup
>-tags. </para>
<para
>De tags op een lager niveau worden hier niet uitgelegd, aangezien hun betekenis voor zich spreekt. Als u <filename
>layout.xml</filename
> bewerkt, vergeet dan niet om ook <filename
>layout.i18n</filename
> en <filename
>ktuberlingui.rc</filename
> te wijzigen. </para>
</sect1>
</chapter>
|