Version 1.9
update version 1.9
Menu kann nun oben, unten, rechts oder links sein. Eingestellt wird dies noch im code selbst durch Auskommentiren.
TO DO: bilder neu und schöner, vor allem gui (Dauertodo)
Bug: scroll wird bei zoom immer wieder auf null gesetzt, d.h. 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 |
prop | dict | Eigenschaften des Objektes |
players
players ist ein dict mit der player id als index. Jeder player hat folgende Strukturkey | type | Bem. |
---|---|---|
name | string | name des players |
cash | int | vermögen des players |
pop | int | population im gesamten |
ausg | int | ausgaben des Spielers |
eing | int | einahmen des Spielers |
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 |
conf | dict | config tab |
show | string | welcher tab angezeigt wird (bauen,info) |
pos | dict | position des menus: w:breite , h:höhe , x,y |
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 |
menu["conf"]
key | type | Bem. |
---|---|---|
save | array | momentan nur "lock" als key, schalter um doppling beim klick zu vermeiden |
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 | prop |
---|---|---|---|---|---|
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 | hab:bewohner |
11 | Haus lvl1 | 312x268 | 3x3 | haus-lvl1-z2-n.png | |
15 | Kontor lvl1 | 312x272 | 3x3 | kontor-lvl1-z2-n.png | gueter |
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 02.11.11
1,1k lines on 13.11.11
this file 230 lines