Links und Funktionen
Sprachumschaltung

Navigationspfad
Sie sind hier: Startseite / Probestudium / 2011 / WS I: 3D-Programmierung / Arbeitsgruppen / Tetris 3D / Das Hauptmenue


Inhaltsbereich

Das Hauptmenue

das Hauptmenue-Skript

Tetrismenue.py — text/python-source, 6 KB (6404 bytes)

Dateiinhalt

from visual import *
from random import random

scene.title='T3DRIS - Hauptmen\xc3\xbc'
scene.fullscreen=True
scene.userspin=False
scene.userzoom=False
scene.center=(.8,0,-100)
depth=0.5
aus_ein=0
t=0
y=-0.1


GesamtesHauptmenue=frame()
alleBuchstaben=frame(frame=GesamtesHauptmenue)
T=frame(frame=alleBuchstaben)
s3=frame(frame=alleBuchstaben)
D=frame(frame=alleBuchstaben)
R=frame(frame=alleBuchstaben)
Iframe=frame(frame=alleBuchstaben)
S=frame(frame=alleBuchstaben)

scene.leicht=label(frame=GesamtesHauptmenue,pos=(1.4,y,0),text="Leicht",visible=False)
scene.leichtBox=box(frame=GesamtesHauptmenue,pos=(1.4,y,0),size=(.25,.1,0),opacity=0,visible=False)
scene.mittel=label(frame=GesamtesHauptmenue,pos=(1.4,y-.2,0),text="Mittel",visible=False)
scene.mittelBox=box(frame=GesamtesHauptmenue,pos=(1.4,y-.2,0),size=(.25,.1,0),opacity=0,visible=False)
scene.schwer=label(frame=GesamtesHauptmenue,pos=(1.4,y-.4,0),text="Schwer",visible=False)
scene.schwerBox=box(frame=GesamtesHauptmenue,pos=(1.4,y-.4,0),size=(.25,.1,0),opacity=0,visible=False)


# Erzeugung der Buchstaben
T1=box(frame=T,pos=(-1,1,0),length=.6,height=.2,width=depth,color=color.cyan) #oberer Strich
T2=box(frame=T,pos=(-1,0.6,0),length=.2,height=.6,width=depth,color=color.cyan) #T-Saeule
s31=box(frame=s3,pos=(-.2,1,0),length=.4,height=.2,width=depth,color=color.white) #oberer Strich
s32=box(frame=s3,pos=(0.1,0.7,0),length=.2,height=.8,width=depth,color=color.white) #3er-Saeule
s33=box(frame=s3,pos=(-0.1,0.7,0),length=.2,height=.2,width=depth,color=color.white) #mittlerer Strich
s34=box(frame=s3,pos=(-0.2,0.4,0),length=.4,height=.2,width=depth,color=color.white) #unterer Strich
D1=box(frame=D,pos=(0.6,0.7,0),length=.2,height=.8,width=depth,color=color.red) #D-Saeule
D2=box(frame=D,pos=(0.8,1,0),length=.2,height=.2,width=depth,color=color.red) #obere Box
D3=box(frame=D,pos=(0.8,.4,0),length=.2,height=.2,width=depth,color=color.red) #untere Box
D4=box(frame=D,pos=(1,0.7,0),length=.2,height=.4,width=depth,color=color.red) #rechter Strich nach unten
R1=box(frame=R,pos=(1.4,0.7,0),length=.2,height=.8,width=depth,color=color.yellow) #R-Saeule
R2=box(frame=R,pos=(1.6,1,0),length=.2,height=.2,width=depth,color=color.yellow) #oberer Punkt
R3=box(frame=R,pos=(1.8,0.8,0),length=.2,height=.2,width=depth,color=color.yellow) #mittlerer Punkt
R4=box(frame=R,pos=(1.6,0.6,0),length=.2,height=.2,width=depth,color=color.yellow) #unterer Punkt
R5=box(frame=R,pos=(1.8,0.4,0),length=.2,height=.2,width=depth,color=color.yellow) #R-Strich
I=box(frame=Iframe,pos=(2.2,0.7,0),length=.2,height=.8,width=depth,color=color.magenta) #das I
S1=box(frame=S,pos=(3,1.02,0),length=.2,height=.16,width=depth,color=color.green) #oberer rechter Block
S2=box(frame=S,pos=(2.8,1.02,0),length=.2,height=.16,width=depth,color=color.green) #oberer mittlerer Block
S3=box(frame=S,pos=(2.6,0.86,0),length=.2,height=.16,width=depth,color=color.green) #oberer linker Block
S4=box(frame=S,pos=(2.8,0.7,0),length=.2,height=.16,width=depth,color=color.green) #Mittelblock
S5=box(frame=S,pos=(3,0.54,0),length=.2,height=.16,width=depth,color=color.green) #unterer rechter Block
S6=box(frame=S,pos=(2.8,0.38,0),length=.2,height=.16,width=depth,color=color.green) #unterer mittlerer Block
S7=box(frame=S,pos=(2.6,0.38,0),length=.2,height=.16,width=depth,color=color.green) #unterer mittlerer Block

# Erzeugen der Menuebuttons
es=label(frame=GesamtesHauptmenue,pos=(.8,-.3,0),text="Einzelspieler",align='center',linecolor=color.black)
esBox=box(frame=GesamtesHauptmenue,pos=(.8,-.3,0),size=(.5,.1,0),opacity=0)
ms=label(frame=GesamtesHauptmenue,pos=(.8,-.65,0),text="Highscore",align='center',linecolor=color.black)
msBox=box(frame=GesamtesHauptmenue,pos=(.8,-.65,0),size=(.5,.1,0),opacity=0)
end=label(frame=GesamtesHauptmenue,pos=(.8,-1,0),text="Beenden",align='center',linecolor=color.black)
endBox=box(frame=GesamtesHauptmenue,pos=(.8,-1,0),size=(.5,.1,0),opacity=0)

#Funktionendeklaration
def Ausklappen(ausklappen):
    global scene
    if ausklappen==True:
        scene.leicht.visible=True
        scene.leichtBox.visible=True
        scene.mittel.visible=True
        scene.mittelBox.visible=True
        scene.schwer.visible=True
        scene.schwerBox.visible=True
    elif ausklappen==False:
        scene.leicht.visible=False
        scene.leichtBox.visible=False
        scene.mittel.visible=False
        scene.mittelBox.visible=False
        scene.schwer.visible=False
        scene.schwerBox.visible=False

def reagiereAufMaus():
    global aus_ein
    global scene
    global t
    if scene.mouse.events:
        event=scene.mouse.getevent()
        if event.pick==esBox and event.press:
            ms.color=color.white
            if aus_ein==True:
                es.color=color.white
                aus_ein=False
            elif aus_ein==False:
                es.color=color.blue
                aus_ein=True
            Ausklappen(aus_ein)
        elif event.pick==msBox and event.press:
            Ausklappen(False)
            es.color=color.white
            if ms.color==color.white:
                ms.color=color.blue
            elif ms.color==color.blue:
                ms.color=color.white
        elif event.pick==scene.leichtBox and event.press:
            t=100
            GesamtesHauptmenue.visible=False
        elif event.pick==scene.mittelBox and event.press:
            t=75
            GesamtesHauptmenue.visible=False
        elif event.pick==scene.schwerBox and event.press:
            t=50
            GesamtesHauptmenue.visible=False
        if event.pick==endBox and event.press:
            scene.visible=False
            del scene

def einzelnRotieren():
    while 1:
        rate(50)
        T.rotate(angle=radians(2),axis=(0,1,0),origin=T2.pos)
        s3.rotate(angle=radians(2),axis=(0,1,0),origin=s33.pos)
        D.rotate(angle=radians(2),axis=(0,1,0),origin=D2.pos)
        R.rotate(angle=radians(2),axis=(0,1,0),origin=R2.pos)
        Iframe.rotate(angle=radians(2),axis=(0,1,0),origin=I.pos)
        S.rotate(angle=radians(2),axis=(0,1,0),origin=S2.pos)
        reagiereAufMaus()

def alleRotieren():
    while 1:
        rate(50)
        alleBuchstaben.rotate(angle=radians(2),axis=(0,1,0),origin=(1,0,0))
        reagiereAufMaus()

#Hauptmenue: Durch Zufall alle oder nur die einzelnen Buchstaben drehen
zufall=random()
if zufall<0.4:
    alleRotieren()
elif zufall>=0.4:
    einzelnRotieren()

Funktionsleiste