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
346
347
|
<chapter id="technical-reference">
<chapterinfo>
<authorgroup>
<author
><firstname
>Éric</firstname
> <surname
>Bischoff</surname
> </author>
<othercredit role="translator"
><firstname
>Marek</firstname
><surname
>Laane</surname
><affiliation
><address
><email
>bald@starman.ee</email
></address
></affiliation
><contrib
>Tõlge eesti keelde</contrib
></othercredit
>
</authorgroup>
<date
>2006-05-05</date
> <releaseinfo
>0.05.01</releaseinfo
> <keywordset>
<keyword
>KDE</keyword>
<keyword
>KTuberling</keyword>
<keyword
>tehniline külg</keyword>
</keywordset>
</chapterinfo>
<title
>Tehniline külg</title>
<para
>&ktuberling; pakub omalt poolt hea võimaluse kaasa aidata &kde; kohandamisele ja arendamisele. Ka seda mängu saab laiendada. Nii võib ka ilma programmeerimata lisada uusi mängulaudu lihtsalt graafikafaile redigeerides. Sobivate helifailide lisamisega võivad tõlkijad panna sõnad ka oma emakeeles kõlama! </para>
<para
>Kui laiendad mängu või lisad sellele midagi, võiksid saata oma panuse ka arendajale <ulink url="mailto:ebischoff@nerim.net"
>Éric Bischoffile</ulink
>, kes saab siis sinu panuse järgmisse versiooni kaasata. </para>
<sect1 id="for-artists">
<title
>Kunstiinimesed</title>
<para
>Mängulaua suurust ja kuju ning objektide hulka on võimalik muuta. Lisada saab uusi mängulaudu. Iga mängulaua jaoks on vaja luua vaid kaks pildifaili: mängulaud ja mask. Kokku on lubatud kuni 8 mängulauda, praegu on kasutusel vaid kolm. </para>
<para
>&ktuberling; kasutab kuut pilti: <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
> ja <filename
>aquarium-mask.png</filename
>. Nende failide standardne asukoht on kataloog <filename class="directory"
>$KDEDIR/share/apps/ktuberling/pics/</filename
>. </para>
<para
>Esimest tüüpi pildid, nimelt <filename
>*-game.png</filename
>, sisaldavad endas mängulauda ja kasutajale valikuks pakutavaid objekte. See on graafika, mida kasutaja mängimise ajal näeb. </para>
<para
>Teist tüüpi pildid (<filename
>*-mask.png</filename
>) sisaldavad ainult objektide maske. Maske kasutatakse objektide servade piiritlemiseks ning mõnel juhul ka teatud läbipaistvuse andmiseks (nt. prillide puhul). Kohustuslik on asetada objektid mängulaua failis samasse positsiooni, nagu nad eksisteerivad maskifailis. </para>
<para
>Samas kataloogis määrab fail <filename
>layout.xml</filename
> (<filename
>$KDEDIR/share/apps/ktuberling/pics/layout.xml</filename
>), milliseid pilte kasutatakse, ning seob nad menüükirjetega. See fail sisaldab ka mänguvälja ning objektide positsioone mängulaua- ja maskifailides. Samuti seob ta helid objektidega ning seab objektid gruppidesse. Ning lõpuks määratleb ta keeled tõlgitud helide komplektina. Fail järgib &XML; standardeid (vt üksikasju <link linkend="layout-details"
>allpool</link
>). </para>
<para
>Sellessamas kataloogis on ka fail <filename
>layout.i18n</filename
> (<filename
>$KDEDIR/share/apps/ktuberling/pics/layout.i18n</filename
>), mis võtab failist <filename
>layout.xml</filename
> tõlgitavad stringid: <itemizedlist>
<listitem
><para
>Menüükirjed, mis võimaldavad valida mängulauda ja keelt</para
></listitem>
<listitem
><para
>Objektikategooriate nimed</para
></listitem>
</itemizedlist>
</para>
<para
>Mainitud kataloogi emakataloogis on veel üks &XML;-fail <filename
>ktuberlingui.rc</filename
> (<filename
>$KDEDIR/share/apps/ktuberling/ktuberlingui.rc</filename
>), mis kirjeldab &ktuberling;i menüüsid. See peaks sisaldama ühe sildi <markup
><action></markup
> (tegevus) iga mängulaua ja keele kohta. Tegevuse sümboolne nimi selles failis peaks kattuma tegevuse sümboolse nimega failis <filename
>layout.xml</filename
>. </para>
</sect1>
<sect1 id="for-translators">
<title
>Tõlkimine</title>
<para
>Lisaks tavalisemale rakenduse käskude, teadete ja muu nähtava <literal role="extension"
>.po</literal
>-failide tõlkimisele saab lokaliseerida ka helisid. </para>
<para
>Kui tõlkijad suudavad salvestada oma hääle <literal role="extension"
>.wav</literal
>-faili, võivad nad selle salvestada helide kataloogis keelele vastavasse alamkataloogi. Seejärel omistatakse heli nimi failile failis <filename
>layout.xml</filename
>. Kui näiteks sihtkeel on itaalia keel, võivad tõlkijad salvestada oma hääle <literal role="extension"
>.wav</literal
>-failidesse, mis asuvad kataloogis <filename
>$KDEDIR/share/apps/ktuberling/sounds/it</filename
>. Seejärel saavad nad näiteks seostada heli nimetusega <quote
>hat</quote
> (<quote
>müts</quote
>) failinimega <filename
>it/cappello.wav</filename
>. </para>
<para
>Tulevastes versioonides hakkab &ktuberling; helivorminguna kasutama OGG Vorbis rc3. Hetkel on võimalik teisendada WAV-failid OGG Vorbis rc3 vormingusse käsurea korraldusega: <screen
><prompt
>$</prompt
> <userinput
>oggenc -q 10 -o <replaceable
>helifail.ogg</replaceable
> <replaceable
>helifail.wav</replaceable
></userinput
>
</screen>
</para>
<para
>Infot selle kohta, kuidas käib tõlkimine &kde;s, annab <ulink url="http://i18n.kde.org/translation-howto/index.html"
>&kde; tõlkimise HOWTO</ulink
>. </para>
</sect1>
<sect1 id="for-programmers">
<title
>Programmeerijad</title>
<para
>Õigupoolest on &ktuberling; programmeerijatele üsna hõlpsasti laiendatav.</para>
<sect2 id="classes">
<title
>C++ klassid</title>
<variablelist>
<varlistentry>
<term
><classname
>TopLevel</classname
></term>
<listitem>
<para
>Tipptaseme aken ja rakenduse baashaldus</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><classname
>PlayGround</classname
></term>
<listitem>
<para
>Mingi konkreetse mängutaseme kirjeldus</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>ToDraw</classname
></term>
<listitem>
<para
>Mingi konkreetse graafilise <quote
>objekti</quote
> kujutamise kirjeldus</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>SoundFactory</classname
></term>
<listitem>
<para
>Mingi konkreetse keele ja selle helide kirjeldus</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>Action</classname
></term>
<listitem>
<para
>Konkreetne kasutaja tegevus võta tagasi/tee uuesti võimalustega</para
> </listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="files-structure">
<title
><literal role="extension"
>.tuberling</literal
>-failide struktuur</title>
<para
><literal role="extension"
>.tuberling</literal
>-fail sisaldab kõiki andmeid, mida on vaja kartulimehe kujutamiseks. Seda võib redigeerida ka tavalise tekstiredaktoriga.</para>
<para
>Esimene rida sisaldab mängulaua numbrit.</para>
<para
>Kõigil ülejäänud ridadel on üks graafiline objekt rea kohta järjekorras, nagu neid kujutatakse. Iga rida sisaldab viis numbrit: objekti identifikaator ning joonistatav nelinurk (vasak, ülemine, parem, alumine). Numbreid eraldavad tühikud.</para>
</sect2>
</sect1>
<sect1 id="layout-details">
<title
>Paigutusfaili (<filename
>layout.xml</filename
>) struktuur</title>
<para
>Ülataseme silt on unikaalne ning kannab nime <markup
><ktuberling></markup
>. See sisaldab mitu silti <markup
><playground></markup
>, ühe iga mängulaua kohta, ning mitu silti <markup
><language></markup
>, mida on samuti üks iga keele kohta. </para>
<para
>Sildil <markup
><playground></markup
> on kaks atribuuti: <markup
>gameboard</markup
> ja <markup
>masks</markup
>. Need määravavad pilte sisaldavate failide nime. Silt <markup
><playground></markup
> sisaldab ka ühe sildi <markup
><menuitem></markup
>, ühe sildi <markup
><editablearea></markup
>, mitu silti <markup
><category></markup
> ja mitu silti <markup
><object></markup
>. </para>
<para
>Silt <markup
><menuitem></markup
> kirjeldab menüüelemendi tegevuse identifikaatorit, võimaldades valida positsiooni, kuhu saab objekte kukutada, ning selle menüüelemendi nimetust. See tegevuse identifikaator peab kattuma failis <filename
>ktuberlingui.rc</filename
> leiduvaga. </para>
<para
>Silt <markup
><editablearea></markup
> kirjeldab positsiooni, kuhu saab objekti kukutada, ning sellega seotud heli nime. </para>
<para
>Silt <markup
><category></markup
> kirjeldab objektigrupi positsiooni ja nimetust. Nii näiteks saab kirjeldada grupi <quote
>lisad</quote
> positsiooni ja nimetust. </para>
<para
>Silt <markup
><objekt></markup
> kirjeldab objekti positsiooni (nii mängulaual kui maskis), samuti sellega seonduva heli nime. </para>
<para
>Silt <markup
><language></markup
> on ühe atribuudiga: <markup
>code</markup
>. See atribuut määrab antud keele lokaadi koodi. Silt <markup
><language></markup
> sisaldab ka ühe sildi <markup
><menuitem></markup
> ja mitu silti <markup
><sound></markup
>. </para>
<para
>Madalama taseme silte me siin ei kirjelda, sest nende tähendus on iseenesestmõistetav. Kui muudad faili <filename
>layout.xml</filename
>, ära unusta vastavalt muutmast ka faile <filename
>layout.i18n</filename
> ja <filename
>ktuberlingui.rc</filename
>. </para>
</sect1>
</chapter>
|