Version 1.7
update version 1.7
Zoom funktion hinzugefügt, ausserdem ist monde init jetzt in einer Funktion: init_monde() , zomm auch mit mausrad möglich
Bildernamen überarbeitet, jedes Bild hat nun im Namen seine Eigenschaften, wie bold oder zoom
Selection im infomodus, wird ein Objekt angeklickt, so erscheinen seine igenschaften im info menu, wird ein anderes angeklickt, ändert sich die Auswahl.
Des Weiteren hat sich herauskristalisiert, dass der mainloop in folgende Abschnitte eingeteilt wird: Events , Menu , Bauen , Info
buttons im bauen werden "tief" wenn gepressed
neu array und das bauen menu werden aus einer datei bgruppen.txt gelesen
✔ TO DO: neu dictionary aus datei laden.
TO DO: bilder neu und schöner, vor allem gui
Bug: scroll wird bei zoom immer wieder auf nul gesetzt, dh scroll muss erhalten bleiben (dpos? draw?)
Bug: haus bauen schaut nicht nach ob monde zu ende ist, häuser die in den Rand der map gebaut werden --> index out of range
Bug: weg bauen ist immer noch eune Notlösung
Variabeln
monde
in grün die Felder, die in die Level-Datei gespeichert werden.key | type | Bem. |
---|---|---|
pos | array | spielkoordinaten |
datei | string | Pfad zu Bilddatei |
img | Pygame | Image object |
rect | Pygame | Rect object |
dpos | array | Position auf dem Bildschirm |
type | string | Typ des objekts siehe Tabelle, soll in integer konvertiert werden |
npos | array | dpos ohne korrektur in z richtung |
korr | int | korrektur zur höhe der gebauede (in z richtung) |
bauen | int | ob das Feld bebaubar ist: 0 False , 1 True |
size | array | grösse des Objektes, in feldern |
bauen
in grün Felder. in rot häuser. in blau wege.key | type | Bem. |
---|---|---|
type | integer | Typ ID des Objekts |
begin | array | koordinaten des Begins des zu bauenden Feldes |
end | array | koordinaten des Ende des zu bauenden Feldes |
inhalt von monde | dict | inhalt des monde eintrages, der später in monde geschrieben wird |
begin | array | koordinaten des Begins des zu bauenden Feldes |
end | array | koordinaten des Ende des zu bauenden Feldes |
weg | array | inhalt von monde der zu bauenden wegelemente als array |
menu
key | type | Bem. |
---|---|---|
bauen | array | bau-menu, enthält dicts |
oben | dict | obere haelfte des menus |
show | string | welcher tab angezeigt wird (bauen,info) |
menu["bauen"]
key | type | Bem. |
---|---|---|
datei | string | icon datei |
pos | array | relative position, absolute wird in for schleife ausgerechnet |
size | array | size in px des icons |
type | int | welcher type id gebaut werden soll |
menu["oben"]
key | type | Bem. |
---|---|---|
tabs | dict | tabs (bauen,info) ähnlich wie menu["bauen"] aufgebaut, nur dass type der menu dict index des tabs ist |
sonstige vars
key | type | Bem. |
---|---|---|
zoomf | int | zoomfaktor , 0 klein , 1 mittel , 2 gross |
mode | string | modus: b bauen , i, info |
sel | array | koordinaten der auswahl im infomodus |
Type IDs
Die Bilder sin in 3 verschiedenen grossen vorhanden: -z2 -z1 -z0und in einer helleren version (in jeder grösse): -b
ID | objekt | dim. px | dim | datei |
---|---|---|---|---|
1 | Wiese | 104x60 | 1x1 | wiese-z2-n.png |
2 | Steinweg | 104x60 | 1x1 | weg-h-z2-n.png |
3 | Kornfeld | 104x71 | 1x1 | feld-korn-z2-n.png |
10 | Haus lvl0 | 312x217 | 3x3 | haus-lvl0-z2-n.png |
11 | Haus lvl1 | 312x268 | 3x3 | haus-lvl1-z2-n.png |
Dateien und Funktionen
main2.py
- scroll(int speed) --> draw
- menu_update(array mouse)
- init_monde(monde,zoomf) --> monde
- zoom(monde,zoomf,neu) --> {monde,neu}
- main infinite loop (not a function)
bauenf.py
- bauen_weg(monde,draw,mouse, neu, bauen) --> {monde,bauen}
- bauen_feld(monde,draw,mouse, neu, bauen) --> {monde,bauen}
- bauen_haus(monde,draw,mouse, neu, bauen) --> {monde,bauen}
load.py
- load() --> array monde
- load_neu() --> dict neu
- load_menu_bauen() --> array menu bauen buttons
bilder.py
- hell(liste)
- size(liste)
Screenshot



source code 25.10.11
875 lines on 25.10.11
this file 190 lines