def __init__(self): """ World Konstruktor :return: void """ self.title = OnscreenText( text="Solarsystem - von Thomas Stedronsky und Simon Wortha", parent=base.a2dBottomRight, align=TextNode.A_right, style=1, fg=(1, 1, 1, 1), pos=(-0.1, 0.1), scale=.07) base.setBackgroundColor(0, 0, 0) base.disableMouse() # Lichteffekte plight = PointLight('plight') plight.setColor(VBase4(1, 1, 1, 1)) self.plnp = render.attachNewNode(plight) self.plnp.setPos(0, 0, 0) render.setLight(self.plnp) # wird benoetigt damit schatten nicht komplett schwarz alight = AmbientLight('alight') alight.setColor(VBase4(0.2, 0.2, 0.2, 1)) self.alnp = render.attachNewNode(alight) render.setLight(self.alnp) #Licht fuer Sonne slight = AmbientLight('slight') slight.setColor(VBase4(100, 100, 100, 1)) self.slnp = render.attachNewNode(slight) # Titel des Fensters props = WindowProperties() props.setTitle('Solarsystem') base.win.requestProperties(props) # Kamerapositionen base.camera.setPos(0, 0, 70) base.camera.setHpr(0, -90, 0) # konkreter Himmelskoerper: self.co = ConcreteOrb() # dekorierte Himmelskoerper: self.s = Sun(self.co) self.merc = Mercury(self.co) self.v = Venus(self.co) self.j = Jupiter(self.co) self.e = Earth(self.co) self.mo = Moon(self.co) self.ds = DeathStar(self.co) self.showHelp = False self.textureOn = True self.loadPlanets() self.rotatePlanets() self.simRunning = True #Erstellen der Events base.accept("p", self.handlePause) base.accept("o", self.handleCameraTopView) base.accept("i", self.handleCamera1) base.accept("u", self.handleCamera2) base.accept("t", self.textureToggle) base.accept("1", self.slower) base.accept("2", self.faster) base.accept("h", self.showHelpView) base.accept("escape", sys.exit)