projekt.py
Version 2.1
projekt1.py — text/python-source, 4 KB (4461 bytes)
Dateiinhalt
"""Labyrint-mit Hindernissen Kugel als spielfigur """ from visual import * from visual.text import * """scene.title = "Labyrinth" # Fenstertitel scene.x = 0 # Fensterpos v. links scene.y = 0 # Fensterpos v. oben scene.height = 320 # Fensterhoehe scene.width = 700 # Fensterbreite scene.range = (1,1,1) # Abstand scene.center = (0,0,-10) # Festlegung Blickziel scene.userspin = False # Blickwechsel abgeschaltet scene.userzoom = False # Benutzerzoom abgeschaltet scene.fov = 15 # Kamerawinkel scene.background = (0.8,0.85,1) # Farbe Hintergrund scene.stereodepth = 2 # Stereotiefe scene.show_rendertime = True # Anzeige der Berechnungszeiten scene.fullscreen = False # Vollbildmodus""" oberflaeche = frame () a=100 b=0.5 c=10 floor = box (frame = oberflaeche, pos = (0,0,0),length=(a), high= (b), width= (a), color=color.red) #Grundflaeche und dementsprechend angepasste Aussenwaende #flaeche = box (frame = oberflaeche, pos = (0.5*a-0.5*b,2*b,0),length=(b), width=(a), high=(c)) wand2= box (frame = oberflaeche, pos = (-0.5*a+0.5*b,2*b,0),length=(b), width=(a), height=(c)) wand3= box (frame = oberflaeche, pos = (0,2*b,0.5*a-0.5*b),length=(a), width=(b), height=(c)) wand4= box (frame = oberflaeche, pos = (0,2*b,-0.5*a+0.5*b),length=(a), width=(b), height=(c)) """ if scene.kb.keys: s = scene.kb.getkey() print s if s == 'up': # nach vorne kippen scene.center = scene.center+scene.forward*mag(scene.center-scene.mouse.camera) elif s == 'down': # nach hinten kippen scene.center = scene.center-scene.forward*mag(scene.center-scene.mouse.camera) elif s == 'ctrl+up': # links kippen newforward = rotate(scene.forward, axis=scene.up, angle=radians(2)) scene.center = scene.mouse.camera+newforward*mag(scene.center-scene.mouse.camera) scene.forward = newforward #scene.center = scene.center+scene.forward*ray.y/2. elif s == 'alt+up': # rechts kippen newforward = rotate(scene.forward, axis=scene.up, angle=radians(-2)) scene.center = scene.mouse.camera+newforward*mag(scene.center-scene.mouse.camera) scene.forward = newforward""" # Blick auf die Szene scene.forward=(0,-1,-2) scene.background=color.black # Ball mit Geschwindigkeit und repr. Vektorpfeil ball = sphere(pos=(-a/2+5,5, a/2-5), color=color.green, radius=1, material=materials.rough, opacity=0.8) # Zeit in krement dt = 0.02 # Endlosschleife #while True: # rate(100) #ball.pos = ball.pos + ball.velocity*dt # Falls Tastatur gedrueckt... #if scene.kb.keys: #s = scene.kb.getkey() #print s #if s == 'left': # links # # ball.velocity.x += -0.1 #elif s == 'right': # right # ball.velocity.x += 0.1 #elif s == 'up': # vor #ball.velocity.z -= 0.1 # elif s == 'down': # zurueck # c """if ball.y < 1 and ball.velocity.y < 0: # Reduktion der Geschwindigkeit = Daempfung ball.velocity.y = -0.65*ball.velocity.y ball.y = 1 else: ball.velocity.y = ball.velocity.y - 9.8*dt pfeil.pos=ball.pos pfeil.axis=ball.velocity oberflaeche.velocity = vector(0, 0, 0) pfeil = arrow(pos=oberflaeche.velocity, axis=oberflaeche.velocity, color=color.green, shaftwidth=0.25)""" e=0 f=0 while True: rate(100) #oberflaeche.pos= oberflaeche.pos+ oberflaeche.velocity*dt #ball.pos = ball.pos + ball.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 # ball.velocity.x += -0.1 elif s == 'right'and f>-25: # right oberflaeche.rotate(angle=radians(0.75), axis=(0,0,-1)) f=f-1 #ball.velocity.x += 0.1 elif s == 'up' and e<25: # vor oberflaeche.rotate(angle=radians(0.75), axis=(-1,0,0)) e=e+1 #ball.velocity.z -= 0.1 elif s == 'down' and e>-25: # zurueck oberflaeche.rotate(angle=radians(0.75), axis=(1,0,0)) e=e-1 # ball.velocity.z += 0.1