@@ -229,7 +229,7 @@ def on_draw():
229
229
window.clear()
230
230
for x, y in snake:
231
231
green_image.blit(x * TILE_SIZE , y * TILE_SIZE ,
232
- width = TILE_SIZE , height = TILE_SIZE )
232
+ width = TILE_SIZE , height = TILE_SIZE )
233
233
234
234
pyglet.app.run()
235
235
```
@@ -267,10 +267,10 @@ def on_draw():
267
267
window.clear()
268
268
for x, y in snake:
269
269
green_image.blit(x * TILE_SIZE , y * TILE_SIZE ,
270
- width = TILE_SIZE , height = TILE_SIZE )
270
+ width = TILE_SIZE , height = TILE_SIZE )
271
271
for x, y in food:
272
272
red_image.blit(x * TILE_SIZE , y * TILE_SIZE ,
273
- width = TILE_SIZE , height = TILE_SIZE )
273
+ width = TILE_SIZE , height = TILE_SIZE )
274
274
275
275
pyglet.app.run()
276
276
```
@@ -336,43 +336,29 @@ bottom_top = pyglet.image.load('snake-tiles/bottom-top.png')
336
336
Ale obrázků je spousta, tímhle způsobem by to bylo zdlouhavé a nejspíš bys
337
337
na některý zapomněl{{a}}.
338
338
339
- Proto Pythonu řekneme, aby nám dal všechny soubory s koncovkou ` .png ` v daném
340
- adresáři.
341
- Na to se dá použít třída ` Path ` z modulu [ ` pathlib ` ] ( https://docs.python.org/3/library/pathlib.html ) .
342
- Zkus si do nového souboru, třeba ` experiment.py ` , napsat následující kód
343
- a spustit ho.
344
- Dokážeš vysvětlit, co dělá?
339
+ Proto si obrázky načteme automaticky, v cyklu, a dáme je do slovníku.
345
340
346
- ``` python
347
- from pathlib import Path
348
-
349
- TILES_DIRECTORY = Path(' snake-tiles' )
350
-
351
- for path in TILES_DIRECTORY .glob(' *.png' ):
352
- print (path)
353
- ```
341
+ Program bude vypadat takhle:
354
342
355
- My z každého souboru potřebujeme nejlépe jméno, tedy místo
356
- ` snake-tiles/right-end.png ` jenom ` right-end ` .
357
- Na to naštěstí existuje atribut ` stem ` (* kořen* , t.j. jméno bez přípony).
358
- Místo ` print(path) ` použij:
343
+ * Začni s prázdným slovníkem.
344
+ * Pro každý * začátek* (` bottom ` , ` end ` , ` left ` , ` right ` , ` top ` ):
345
+ * Pro každý * konec* (` bottom ` , ` end ` , ` left ` , ` right ` , ` top ` , ` dead ` , ` tongue ` ):
346
+ * Budeme načítat obrázek „<var >začátek</var >-<var >konec</var >“; tento
347
+ <var >klíč</var > si dej do proměnné
348
+ * Načti obrázek <var >klíč</var >.png
349
+ * Ulož obrázek do slovníku pod <var >klíč</var >.
359
350
360
351
``` python
361
- print (path.stem)
352
+ snake_tiles = {}
353
+ for start in [' bottom' , ' end' , ' left' , ' right' , ' top' ]:
354
+ for end in [' bottom' , ' end' , ' left' , ' right' , ' top' , ' dead' , ' tongue' ]:
355
+ key = start + ' -' + end
356
+ image = pyglet.image.load(' snake-tiles/' + key + ' .png' )
357
+ snake_tiles[key] = image
362
358
```
363
359
364
- Funguje? Máš vypsané všechny možné kousky hada?
365
-
366
- Teď budeme chtít načíst obrázky do * slovníku* .
367
- * Klíče* slovníku, podle kterých budeme vyhledávat, budou jména, která jsi
368
- právě vypsal{{a}}.
369
- * Hodnoty* pak budou pygletí obrázky, které ve hře můžeš rovnou vykreslit.
370
-
371
- Začni s prázdným slovníkem, ` {} ` , a v cyklu ` for ` do něj postupně přidávej
372
- záznamy.
373
360
Pak celý slovník vypiš.
374
-
375
- Až to budeš mít, měl by výpis vypadat asi takhle:
361
+ Výpis vypadat asi takhle:
376
362
377
363
```
378
364
{'right-tongue': <ImageData 64x64>, 'top-tongue': <ImageData 64x64>,
@@ -382,22 +368,6 @@ Až to budeš mít, měl by výpis vypadat asi takhle:
382
368
...
383
369
```
384
370
385
- {% filter solution %}
386
- ``` python
387
- from pathlib import Path
388
-
389
- import pyglet
390
-
391
- TILES_DIRECTORY = Path(' snake-tiles' )
392
-
393
- snake_tiles = {}
394
- for path in TILES_DIRECTORY .glob(' *.png' ):
395
- snake_tiles[path.stem] = pyglet.image.load(path)
396
-
397
- print (snake_tiles)
398
- ```
399
- {% endfilter %}
400
-
401
371
402
372
## Housenka
403
373
0 commit comments