Links und Funktionen
Sprachumschaltung

Navigationspfad


Inhaltsbereich

kaggge

Python Source icon Jump&Run.py — Python Source, 4 KB (4414 bytes)

Dateiinhalt

from visual import *
from threading import Thread
import random

scene.range = (500)
scene.forward = (275,-150,-100)

class figur(frame, Thread):
    def __init__(self,g=1,posx=0, posy=0, posz=0, farbe=color.white):                                           
        frame.__init__(self)
        Thread.__init__(self)
        self.kopf=sphere(frame=self, pos=(posx,44*g+posy,posz), radius=15*g, color = farbe)                     
        self.koerper=box(frame=self, pos=(posx,0+posy,posz), size=(25*g,60*g,40*g), color = farbe)              
        self.beinr=box(frame=self, pos=(posx,-40*g+posy,posz+10*g), size=(15*g,30*g,15*g), color= farbe)        
        self.beinl=box(frame=self, pos=(posx,-40*g+posy,posz-10*g), size=(15*g,30*g,15*g), color= farbe)
        self.auger=sphere(frame=self, pos=(posx+15*g, 44*g+posy, posz+7.5*g), radius=2.5*g, color = (0.5,0,0))
        self.augel=sphere(frame=self, pos=(posx+15*g, 44*g+posy, posz-7.5*g), radius=2.5*g, color = (0.5,0,0))
    def run(self):
        while True:
            rate(20)
            self.x += 10
            scene.center=self.pos
            scene.autoscale = False
            if scene.kb.keys:
                taste = scene.kb.getkey()
                if taste == "w" and self.z != -100:
                    self.pos = self.pos + vector(0,20,-50)
                    scene.center=self.pos
                elif taste == "s" and self.z != 0:
                    self.pos = self.pos + vector(0,-20,50)
                    scene.center=self.pos
                elif taste == " ":
                    for a in range(5):
                        rate(30) 
                        self.y += 12
                        self.x += 12
                        scene.center=self.pos
                    rate(20)
                    for b in range(5):
                        rate(30)
                        self.y -= 12
                        self.x += 12
                        scene.center=self.pos
            
            
class hindernis(Thread):
    def __init__(self, px=0, py=0, pz=0, x=50, y=50, z=50, farbe=color.white, e = None):
        Thread.__init__(self)
        self.box = box(pos=(px,py,pz), size=(x,y,z), color = farbe)
        self.strecke = 0
        self.e = e
    def run(self):
        while True:
            rate(20)
            self.strecke += 10
            self.e.hliste.append(hindernis(px=-1000))
            if self.strecke%150==0:
                a = random.randint(0,2)
                h = hindernis(px=500+self.strecke,py=a*20+35,pz=a*-50, x=50,y=50,z=50, farbe = color.blue)
                self.e.hliste.append(h)
                
                
            
class ebene(Thread):
    def __init__(self, zahl=0, farbe = color.white):
        Thread.__init__(self)
        self.ebene = box(pos=(0,zahl*20,zahl*-50), size=(10000,20,50), color = farbe)
        self.z = self.ebene.z
        scene.autoscale = False
    def run(self):
        while True:
            rate(20)
            self.ebene.x += 10
   
class strecke(Thread):
    def __init__(self, f = None):
        Thread.__init__(self)
        self.strecke = 0
        self.anzeige = label(pos=(1000,-1000,0), text='STRECKE= ' + str(0))
        self.hliste = []
        self.f = f
    def run(self):
        while True:
            rate(20)
            self.strecke += 10
            self.anzeige.x += 10
            self.anzeige.text ='STRECKE= ' + str(self.strecke)
            
            hi = self.hliste.pop(0)
            #print hi
            print self.f.x
            print hi.box.x
            if self.f.x == hi.box.x:
                print "GAME OVER"
     

class starter():
    def __init__(self):
        self.figur1 = figur(g=1, posx=-450, posy= 65, posz=0, farbe = color.red)                                                                                                                                        
        self.ebene1 = ebene(zahl =0)
        self.ebene2 = ebene(zahl =1, farbe=color.gray(0.7))
        self.ebene3 = ebene(zahl =2, farbe=color.gray(0.4))
        self.strecke = strecke(f = self.figur1)
        self.hindernis1 = hindernis(px=-1000, e = self.strecke)
        self.ebene1.start()
        self.ebene2.start()
        self.ebene3.start()
        self.figur1.start()
        self.hindernis1.start()
        self.strecke.start()

def gameover():
    label(pos=(0,50,0), text='Game Over')


starter()
         



Funktionsleiste