Labyrinth
Version 4.2
(Welt hinzugefügt)
projekt1.py — text/python-source, 10 KB (10615 bytes)
Dateiinhalt
"""Labyrint-mit Hindernissen
Kugel als spielfigur
"""
from visual import *
from visual.text import *
oberflaeche = frame ()
a=100
b=0.5
c=2.5
flaeche = box (frame = oberflaeche, pos = (25,0,0),\
length=(50), height= (1), width= (a), color=color.blue, material=materials.wood)
#Aussenwaende:
wand1= box (frame = oberflaeche, pos = (0.5*a-0.5*b,1.75,0),\
length=(b), width=(a), height=(1),color=color.blue, material=materials.wood)
wand2= box (frame = oberflaeche, pos = (0,1.75,0),\
length=(b), width=(a), height=(1), color=color.blue, material=materials.wood)
wand3= box (frame = oberflaeche, pos = (25,1.75,0.5*a-0.5*b),\
length=(0.5*a), width=(b), height=(1), color=color.blue, material=materials.wood)
wand4= box (frame = oberflaeche, pos = (25,1.75,-0.5*a+0.5*b),\
length=(0.5*a), width=(b), height=(1), color=color.blue, material=materials.wood)
#Trennwaende:
wand5 = box(frame= oberflaeche, pos = ( 30,1.75,45),\
length= (40), width = (1), height= (c),color=color.green , material=materials.wood) #1
wand7 = box(frame= oberflaeche, pos = ( 5,1.75,47),\
length= (1), width = (5), height= (c),color=color.green , material=materials.wood) #3
wand11 = box(frame= oberflaeche, pos = ( 40,1.75,40),\
length= (20), width = (1), height= (c),color=color.green , material=materials.wood) #7
wand12 =box(frame= oberflaeche, pos = ( 25,1.75,40 ),\
length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #8
wand13 = box(frame= oberflaeche, pos = ( 10,1.75,40),\
length= (20), width = (1), height= (c),color=color.green , material=materials.wood) #9
wand14 =box(frame= oberflaeche, pos = ( 30,1.75,35.5 ),\
length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #10
wand15 = box(frame= oberflaeche, pos = ( 15,1.75,35),\
length= (21), width = (1), height= (c),color=color.green , material=materials.wood) #11
wand16 = box(frame= oberflaeche, pos = ( 23,1.75,30),\
length= (15), width = (1), height= (c),color=color.green , material=materials.wood) #12
wand17 =box(frame= oberflaeche, pos = ( 10,1.75,-5 ),\
length= (1), width = (80), height= (c),color=color.green , material=materials.wood) #13
wand18 =box(frame= oberflaeche, pos = ( 15,1.75,28 ),\
length= (1), width = (5), height= (c),color=color.green , material=materials.wood) #14
wand19 = box(frame= oberflaeche, pos = ( 24.5,1.75,25),\
length= (20), width = (1), height= (c),color=color.green , material=materials.wood) #15
wand20 = box(frame= oberflaeche, pos = ( 32.5,1.75,20),\
length= (35), width = (1), height= (c),color=color.green , material=materials.wood) #16
wand21 =box(frame= oberflaeche, pos = ( 35,1.75,29.5 ),\
length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #17
wand22 =box(frame= oberflaeche, pos = ( 45,1.75,29.5 ),\
length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #18
wand23 = box(frame= oberflaeche, pos = ( 40,1.75,35),\
length= (11), width = (1), height= (c),color=color.green , material=materials.wood) #19
wand24 = box(frame= oberflaeche, pos = ( 43,1.75,25),\
length= (4), width = (1), height= (c),color=color.green, material=materials.wood ) #20
wand25 =box(frame= oberflaeche, pos = ( 40.5,1.75,27.5 ),\
length= (1), width = (6), height= (c),color=color.green , material=materials.wood) #21
wand26 =box(frame= oberflaeche, pos = ( 15,1.75,13 ),\
length= (1), width = (15), height= (c),color=color.green, material=materials.wood ) #22
wand27 = box(frame= oberflaeche, pos = ( 17,1.75,5),\
length= (5), width = (1), height= (c),color=color.green , material=materials.wood) #23
wand28 =box(frame= oberflaeche, pos = ( 20,1.75,9.5 ),\
length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #24
wand29 =box(frame= oberflaeche, pos = ( 25.25,1.75,-5 ),\
length= (1), width = (31), height= (c),color=color.green , material=materials.wood) #25
wand30 = box(frame= oberflaeche, pos = ( 32.25,1.75,15),\
length= (25.5), width = (1), height= (c),color=color.green , material=materials.wood) #26
wand31 = box(frame= oberflaeche, pos = ( 35,1.75,10),\
length= (20.5), width = (1), height= (c),color=color.green , material=materials.wood) #27
wand32 =box(frame= oberflaeche, pos = ( 5,1.75,-5 ),\
length= (1), width = (80), height= (c),color=color.green , material=materials.wood) #28
wand33 = box(frame= oberflaeche, pos = ( 15.5,1.75,0),\
length= (10), width = (1), height= (c),color=color.green , material=materials.wood) #29
wand34 = box(frame= oberflaeche, pos = ( 27,1.75,-45),\
length= (35), width = (1), height= (c),color=color.green , material=materials.wood) #30
wand35 =box(frame= oberflaeche, pos = ( 45,1.75,-5 ),\
length= (1), width = (31), height= (c),color=color.green , material=materials.wood) #31
wand36 =box(frame= oberflaeche, pos = ( 45,1.75,-35.5 ),\
length= (1), width = (20), height= (c),color=color.green , material=materials.wood) #32
wand37 = box(frame= oberflaeche, pos = ( 35,1.75,-20),\
length= (20.5), width = (1), height= (c),color=color.green , material=materials.wood) #33
wand38 = box(frame= oberflaeche, pos = ( 35.25,1.75,-25),\
length= (20.5), width = (1), height= (c),color=color.green , material=materials.wood) #34
wand39 =box(frame= oberflaeche, pos = ( 20,1.75,-10 ),\
length= (1), width = (21), height= (c),color=color.green , material=materials.wood) #35
wand40 =box(frame= oberflaeche, pos = ( 15,1.75,-12.5 ),\
length= (1), width = (15), height= (c),color=color.green , material=materials.wood) #36
wand41 = box(frame= oberflaeche, pos = ( 17,1.75,-20),\
length= (5), width = (1), height= (c),color=color.green , material=materials.wood) #37
wand42 = box(frame= oberflaeche, pos = ( 17,1.75,-25),\
length= (5), width = (1), height= (c),color=color.green, material=materials.wood ) #38
wand43 = box(frame= oberflaeche, pos = ( 17,1.75,-35),\
length= (5), width = (1), height= (c),color=color.green, material=materials.wood ) #39
wand44 =box(frame= oberflaeche, pos = ( 20,1.75,-30 ),\
length= (1), width = (11), height= (c),color=color.green, material=materials.wood ) #40
wand45 =box(frame= oberflaeche, pos = ( 15,1.75,-30 ),\
length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #41
wand44 =box(frame= oberflaeche, pos = ( 25,1.75,-32.25 ),\
length= (1), width = (15.5), height= (c),color=color.green , material=materials.wood) #42
wand45 = box(frame= oberflaeche, pos = ( 27,1.75,-40),\
length= (25), width = (1), height= (c),color=color.green , material=materials.wood) #43
wand46 =box(frame= oberflaeche, pos = ( 40,1.75,-35.5 ),\
length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #44
wand47 = box(frame= oberflaeche, pos = ( 35.25,1.75,-30.5),\
length= (10.5), width = (1), height= (c),color=color.green , material=materials.wood) #45
wand44 =box(frame= oberflaeche, pos = ( 30,1.75,-32.5 ),\
length= (1), width = (5), height= (c),color=color.green , material=materials.wood) #46
#Smilie:
wand45 =box(frame= oberflaeche, pos = ( 30,1.75,-11 ),\
length= (1), width = (5), height= (c),color=color.green , material=materials.wood) #s1
wand46 =box(frame= oberflaeche, pos = ( 30,1.75,1 ),\
length= (1), width = (5), height= (c),color=color.green , material=materials.wood) #s2
wand47 =box(frame= oberflaeche, pos = ( 40,1.75,-5 ),\
length= (1), width = (17), height= (c),color=color.green , material=materials.wood) #s3
wand48 = box(frame= oberflaeche, pos = ( 38,1.75,3),\
length= (4), width = (1), height= (c),color=color.green , material=materials.wood) #s4
wand49 = box(frame= oberflaeche, pos = ( 38,1.75,-13),\
length= (4), width = (1), height= (c),color=color.green, material=materials.wood ) #s5
wand50 = box(frame= oberflaeche, pos = ( 34,1.75,-5),\
length= (3), width = (1), height= (c),color=color.green , material=materials.wood) #s6
#Zielfeld:
feld = box(frame = oberflaeche, pos = (47.5,0.51,42.5),\
length=(5), width = (5), height=(0.1),color = color.red, material=materials.wood)
# Blick auf die Szene
scene.forward=(0,-1,-2)
scene.background=color.black
# Ball mit Geschwindigkeit und repr. Vektorpfeil
ball = sphere (frame= oberflaeche, pos= (47.5,1.5,47.5),radius =( 1),color=color.orange, opacity=0.8, material=materials.wood)
oberflaeche.velocity=vector(0, 0, -1)
ball.velocity = oberflaeche.velocity
e=0
f=0
while True:
rate(100)
#oberflaeche.pos= oberflaeche.pos+ oberflaeche.velocity*dt
# Falls Tastatur gedrueckt...
if scene.kb.keys:
s = scene.kb.getkey()
print s
print oberflaeche.axis
if s == 'left' and f<25 : # links
oberflaeche.rotate(angle=radians(0.75), axis=(0,0,1))
f=f+1
elif s == 'right'and f>-25: # right
oberflaeche.rotate(angle=radians(0.75), axis=(0,0,-1))
f=f-1
elif s == 'up' and e<25: # vor
oberflaeche.rotate(angle=radians(0.75), axis=(-1,0,0))
e=e+1
elif s == 'down' and e>-25: # zurueck
oberflaeche.rotate(angle=radians(0.75), axis=(1,0,0))
e=e-1
#Moeglichkeit des uebertretens des Feldes verhindern:
if ball.x>1 and ball.x<48:
ball.x= ball.x+(-0.01*f) #Bewegegung des Balls in x-Richtung
else:
if ball.x>=48:
ball.x=47.9999
if ball.x<=1:
ball.x=1.0001
if ball.z>-48 and ball.z<48:
ball.z=ball.z+(-0.01*e) #Bewegung des Balls in z-Richtung
else:
if ball.z>=48:
ball.z=47.9999
if ball.z<=-48:
ball.z=-47.9999
#1 grenze wand5
if ball.z>20.5 and ball.z<30.5:
ball.z=ball.z+(-0.01*e)
if ball.x>25 and ball.x<65:
ball.x=ball.x+(-0.01*f)
"""
def check (wand, position):
#Ecken der Grundflaeche der Wand
x1=wand.pos-1.5+0.5*wand.length-0.5*wand.width
x2=wand.pos-1.5+0.5*wand.length+0.5*wand.width
x3=wand.pos-1.5-0.5*wand.length+0.5*wand.width
x4=wand.pos-1.5-0.5*wand.length-0.5*wand.width
if """