Informatikabitur - Projekt in Python

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.
posarrayspielkoordinaten
dateistringPfad zu Bilddatei
imgPygameImage object
rectPygameRect object
dposarrayPosition auf dem Bildschirm
typestringTyp des objekts siehe Tabelle, soll in integer konvertiert werden
nposarraydpos ohne korrektur in z richtung
korrintkorrektur zur höhe der gebauede (in z richtung)
bauenintob das Feld bebaubar ist: 0 False , 1 True
sizearraygrösse des Objektes, in feldern

bauen

in grün Felder. in rot häuser. in blau wege.
key type Bem.
typeintegerTyp ID des Objekts
beginarraykoordinaten des Begins des zu bauenden Feldes
endarraykoordinaten des Ende des zu bauenden Feldes
inhalt von mondedictinhalt des monde eintrages, der später in monde geschrieben wird
beginarraykoordinaten des Begins des zu bauenden Feldes
endarraykoordinaten des Ende des zu bauenden Feldes
wegarrayinhalt von monde der zu bauenden wegelemente als array

menu

key type Bem.
bauenarraybau-menu, enthält dicts
obendictobere haelfte des menus
showstringwelcher tab angezeigt wird (bauen,info)

menu["bauen"]
key type Bem.
dateistringicon datei
posarrayrelative position, absolute wird in for schleife ausgerechnet
sizearraysize in px des icons
typeintwelcher type id gebaut werden soll

menu["oben"]
key type Bem.
tabsdicttabs (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
modestringmodus: b bauen , i, info
selarraykoordinaten der auswahl im infomodus

Type IDs

Die Bilder sin in 3 verschiedenen grossen vorhanden: -z2 -z1 -z0
und in einer helleren version (in jeder grösse): -b
IDobjektdim. pxdimdatei
1Wiese104x601x1wiese-z2-n.png
2Steinweg104x601x1weg-h-z2-n.png
3Kornfeld104x711x1feld-korn-z2-n.png
10Haus lvl0312x2173x3haus-lvl0-z2-n.png
11Haus lvl1312x2683x3haus-lvl1-z2-n.png

Dateien und Funktionen

main2.py

bauenf.py

load.py

bilder.py

Screenshot

screenshot  1

screenshot 2

screenshot 3

source code 25.10.11
875 lines on 25.10.11
this file 190 lines