def __init__(self): self.hotelModel = loader.loadModel("menuBG/menuback") self.hotelModel.reparentTo(render) self.hotelModel.stash() # setup some lights plight = PointLight("mapgen_plight") plight.setColor(VBase4(0.45, 0.35, 0.35, 1)) self.plnp = self.hotelModel.attachNewNode(plight) self.plnp.setPos(-3, 3, 5) base.render.setLight(self.plnp) # setup a default ambient light alight = AmbientLight("mapgen_alight") alight.setColor(VBase4(0.20, 0.20, 0.28, 1)) self.alnp = self.hotelModel.attachNewNode(alight) base.render.setLight(self.alnp) sun = DirectionalLight('sun') sun.setColor(VBase4(0.8, 0.8, 0.8, 1)) lens = PerspectiveLens() lens.setFar(50) lens.setFov(80, 80) sun.setLens(lens) ms = 1024 #graphicMgr.shadowMapSize sun.setShadowCaster(True, ms, ms) self.sunnp = self.hotelModel.attachNewNode(sun) self.sunnp.setHpr(85, -50, 0) self.sunnp.setPos(12, 0, 10) base.render.setLight(self.sunnp)
def setupLights(self): """Setup extrnal lights""" # ambient light alight = AmbientLight('alight') alight.setColor((0.2, 0.2, 0.2, 1)) alnp = self.render.attachNewNode(alight) self.render.setLight(alnp) # directional light dlight = DirectionalLight('dlight') dlight.setColor((0.8, 0.8, 0.5, 1)) lens = PerspectiveLens() lens.setNearFar(1, 5) dlight.setLens(lens) dlight.setShadowCaster(True, args.shadow_resolution, args.shadow_resolution) dlnp = self.render.attachNewNode(dlight) dlnp.setPos(2, -2, 3) dlnp.lookAt(0, 0, 0) self.render.setLight(dlnp) # spotlight slight = Spotlight('slight') slight.setColor((0.7, 0.7, 1.0, 1)) lens = PerspectiveLens() lens.setNearFar(1, 5) slight.setLens(lens) slight.setShadowCaster(True, args.shadow_resolution, args.shadow_resolution) slnp = self.render.attachNewNode(slight) slnp.setPos(1, 1, 2) slnp.lookAt(0, 0, 0) self.render.setLight(slnp)
def __setDirectionalLight(self,props): light = DirectionalLight(props['name']) light.setShadowCaster(props['castShadows'],1024,1024) lens = PerspectiveLens() light.setLens(lens) lens.setFov(1200/props['pos'].z) return self.__createLight(light,props)
def __setDirectionalLight(self, props): light = DirectionalLight(props['name']) light.setShadowCaster(props['castShadows'], 1024, 1024) lens = PerspectiveLens() light.setLens(lens) lens.setFov(1200 / props['pos'].z) return self.__createLight(light, props)
def __init__(self, arenaNr): arenaPath = "levels/arena{}/".format(arenaNr) self.arena = loader.loadModel(arenaPath + "arena") self.arena.setScale(2) self.arena.reparentTo(render) self.arena.hide() ambientLight = AmbientLight("ambient_light") ambientLight.setColor((0.2, 0.2, 0.2, 1)) self.alnp = render.attachNewNode(ambientLight) sunLens = PerspectiveLens() sunLens.setFilmSize(50) sun = DirectionalLight("sun") sun.setColor((1, 1, 1, 1)) sun.setShadowCaster(True, 2048, 2048) sun.setScene(render) #sun.showFrustum() self.ambientSound = None self.levelParticles = None if arenaNr == 1: sunLens.setNearFar(25, 45) sun.setLens(sunLens) self.sunNp = render.attachNewNode(sun) self.sunNp.setPos(-10, -10, 30) self.sunNp.lookAt(0, 0, 0) self.ambientSound = loader.loadSfx( "assets/audio/ambientLevel1.ogg") self.ambientSound.setLoop(True) self.fog = Fog("Outside Fog") self.fog.setColor(0.3, 0.3, 0.5) self.fog.setExpDensity(0.025) self.levelParticles = ParticleEffect() self.levelParticles.loadConfig("assets/fx/Leafs.ptf") self.levelParticles.start(parent=render2d, renderParent=render2d) elif arenaNr == 2: sunLens.setFov(120, 40) sunLens.setNearFar(2, 10) sun.setLens(sunLens) self.sunNp = render.attachNewNode(sun) self.sunNp.setPos(0, 0, 5) self.sunNp.lookAt(0, 0, 0) self.fog = Fog("Temple Fog") self.fog.setColor(0, 0, 0) self.fog.setExpDensity(0.065)
def __init__(self, arenaNr): arenaPath = "levels/arena%d/" % arenaNr self.arena = loader.loadModel(arenaPath + "arena") self.arena.setScale(2) self.arena.reparentTo(render) self.arena.hide() ambientLight = AmbientLight("ambient_light") ambientLight.setColor((0.2, 0.2, 0.2, 1)) self.alnp = render.attachNewNode(ambientLight) sunLens = PerspectiveLens() sunLens.setFilmSize(50) sun = DirectionalLight("sun") sun.setColor((1, 1, 1, 1)) sun.setShadowCaster(True, 2048, 2048) sun.setScene(render) #sun.showFrustum() self.ambientSound = None self.levelParticles = None if arenaNr == 1: sunLens.setNearFar(25,45) sun.setLens(sunLens) self.sunNp = render.attachNewNode(sun) self.sunNp.setPos(-10, -10, 30) self.sunNp.lookAt(0,0,0) self.ambientSound = loader.loadSfx("assets/audio/ambientLevel1.ogg") self.ambientSound.setLoop(True) self.fog = Fog("Outside Fog") self.fog.setColor(0.3,0.3,0.5) self.fog.setExpDensity(0.025) self.levelParticles = ParticleEffect() self.levelParticles.loadConfig("assets/fx/Leafs.ptf") self.levelParticles.start(parent = render2d, renderParent = render2d) elif arenaNr == 2: sunLens.setFov(120, 40) sunLens.setNearFar(2,10) sun.setLens(sunLens) self.sunNp = render.attachNewNode(sun) self.sunNp.setPos(0, 0, 5) self.sunNp.lookAt(0,0,0) self.fog = Fog("Temple Fog") self.fog.setColor(0,0,0) self.fog.setExpDensity(0.065)
def initLights(self): ambientLight = AmbientLight("ambient_light") ambientLight.setColor((0.2, 0.2, 0.2, 1)) self.alnp = render.attachNewNode(ambientLight) sunLens = PerspectiveLens() sunLens.setFilmSize(50) sun = DirectionalLight("sun") sun.setColor((1, 1, 1, 1)) # sun.setShadowCaster(True, 4096, 4096) # highest working value sun.setScene(render) # sun.showFrustum() sunLens.setFov(120, 40) sunLens.setNearFar(2, 100) sun.setLens(sunLens) self.sunNp = render.attachNewNode(sun)
def create(self): Level.create(self) # reset game vars when going to main menu self.level_holder.reset_game_vars() self.sprites = loader.loadModel("mainmenu/mainmenu.egg") # red pawn pawn_red = Actor("pawns/pawn.bam") pawn_red.setPos(-4, 20, -2) pawn_red.setH(-145) pawn_red.loop('breath') self.actors["actor_pawn_red"] = pawn_red # red pawn light dlight_red = DirectionalLight('DL Red') dlight_red.setColor((0.682 / 1.5, 0.125 / 1.5, 0.121 / 1.5, 1)) dlight_red.setLens(PerspectiveLens()) dlight_red_np = render.attachNewNode(dlight_red) self.lights["dlight_red_np"] = dlight_red_np self.lights["dlight_red_np"].setPos(10, 15, 10) self.lights["dlight_red_np"].lookAt(self.actors["actor_pawn_red"]) # white pawn pawn_white = Actor("pawns/pawn.bam") pawn_white.setPos(4, 20, -2) pawn_white.setH(145) pawn_white.loop('breath') self.actors["actor_pawn_white"] = pawn_white # light dlight_white = DirectionalLight('DL White') dlight_white.setColor((0.9 / 2.5, 0.9 / 2.5, 0.9 / 2.5, 1)) dlight_white.setLens(PerspectiveLens()) dlight_white_np = render.attachNewNode(dlight_white) self.lights["dlight_white_np"] = dlight_white_np self.lights["dlight_white_np"].setPos(-10, 15, 10) self.lights["dlight_white_np"].lookAt(self.actors["actor_pawn_white"]) # upon creation, enable these items self.actors["actor_pawn_red"].reparentTo(render) self.actors["actor_pawn_red"].setLight(self.lights["dlight_red_np"]) self.actors["actor_pawn_white"].reparentTo(render) self.actors["actor_pawn_white"].setLight( self.lights["dlight_white_np"]) self.goto_home()
def create(self): Level.create(self) scale_normal = (0.75, 1, 0.25) scale_long = (1.25, 1, 0.3) VirtualFileSystem.getGlobalPtr().mount(Filename("mf/room-buttons.mf"), ".", VirtualFileSystem.MFReadOnly) egg = loader.loadModel("room-buttons/room-buttons.egg") # white light dlight_white = DirectionalLight('DL White') dlight_white.setColor((0.9 / 2.5, 0.9 / 2.5, 0.9 / 2.5, 1)) dlight_white.setLens(PerspectiveLens()) dlight_white_np = render.attachNewNode(dlight_white) dlight_white_np.setPos(-10, 15, 10) self.lights["dlight_white_np"] = dlight_white_np # red light dlight_red = DirectionalLight('DL Red') dlight_red.setColor((0.682 / 1.5, 0.125 / 1.5, 0.121 / 1.5, 1)) dlight_red.setLens(PerspectiveLens()) dlight_red_np = render.attachNewNode(dlight_red) dlight_red_np.setPos(10, 15, 10) self.lights["dlight_red_np"] = dlight_red_np for p in self.level_holder.players: # pawns pawn_red = Actor("pawns/pawn.bam") pos = self.positions[list(self.level_holder.players).index(p)] pawn_red.setPos(pos[0]) pawn_red.setH(pos[1]) pawn_red.setScale(0.75, 0.75, 0.75) pawn_red.loop('breath') pawn_red.reparentTo(render) if not self.level_holder.players[p].alive: pawn_red.setLight(dlight_red_np) else: pawn_red.setLight(dlight_white_np) self.actors["actor_pawn_red_{}".format(p)] = pawn_red # name tag name_tag = TextNode("name_tag_for_{}".format(p)) name_tag.setText(self.level_holder.players[p].name) name_tag.setAlign(TextNode.ACenter) name_tag.setTextColor(0.682, 0.125, 0.121, 1) node_path = render.attachNewNode(name_tag) node_path.setHpr(0, 0, 0) node_path.setScale(0.5) node_path.setPos(pos[0][0], pos[0][1] + 1.5, pos[0][2] + 3) node_path.setBin('fixed', 0) self.text_nodepaths["name_tag_for_{}".format(p)] = node_path # buttons on where to go if self.level_holder.red_room == KITCHEN: btn_kitchen = DirectButton( scale=scale_normal, pos=(0, 0, 0.5), command=self.set_room, extraArgs=[KITCHEN], geom=(egg.find('**/room-kitchen-redroom'), egg.find('**/room-kitchen-click'), egg.find('**/room-kitchen-hover'), egg.find('**/room-kitchen-click')), relief=None) else: btn_kitchen = DirectButton( scale=scale_normal, pos=(0, 0, 0.5), command=self.set_room, extraArgs=[KITCHEN], geom=(egg.find('**/room-kitchen-ready'), egg.find('**/room-kitchen-click'), egg.find('**/room-kitchen-hover'), egg.find('**/room-kitchen-click')), relief=None) if self.level_holder.red_room == LIVING_ROOM: btn_living_room = DirectButton( scale=scale_long, pos=(0, 0, 0.25), command=self.set_room, extraArgs=[LIVING_ROOM], geom=(egg.find('**/room-livingroom-redroom'), egg.find('**/room-livingroom-click'), egg.find('**/room-livingroom-hover'), egg.find('**/room-livingroom-click')), relief=None) else: btn_living_room = DirectButton( scale=scale_long, pos=(0, 0, 0.25), command=self.set_room, extraArgs=[LIVING_ROOM], geom=(egg.find('**/room-livingroom-ready'), egg.find('**/room-livingroom-click'), egg.find('**/room-livingroom-hover'), egg.find('**/room-livingroom-click')), relief=None) if self.level_holder.red_room == BEDROOM: btn_bedroom = DirectButton( scale=scale_normal, pos=(0, 0, 0), command=self.set_room, extraArgs=[BEDROOM], geom=(egg.find('**/room-bedroom-redroom'), egg.find('**/room-bedroom-click'), egg.find('**/room-bedroom-hover'), egg.find('**/room-bedroom-click')), relief=None) else: btn_bedroom = DirectButton( scale=scale_normal, pos=(0, 0, 0), command=self.set_room, extraArgs=[BEDROOM], geom=(egg.find('**/room-bedroom-ready'), egg.find('**/room-bedroom-click'), egg.find('**/room-bedroom-hover'), egg.find('**/room-bedroom-click')), relief=None) if self.level_holder.red_room == PORCH: btn_porch = DirectButton(scale=scale_normal, pos=(0, 0, -0.25), command=self.set_room, extraArgs=[PORCH], geom=(egg.find('**/room-porch-redroom'), egg.find('**/room-porch-click'), egg.find('**/room-porch-hover'), egg.find('**/room-porch-click')), relief=None) else: btn_porch = DirectButton(scale=scale_normal, pos=(0, 0, -0.25), command=self.set_room, extraArgs=[PORCH], geom=(egg.find('**/room-porch-ready'), egg.find('**/room-porch-click'), egg.find('**/room-porch-hover'), egg.find('**/room-porch-click')), relief=None) if self.level_holder.red_room == DINING_ROOM: btn_dining_room = DirectButton( scale=scale_long, pos=(0, 0, -0.5), command=self.set_room, extraArgs=[DINING_ROOM], geom=(egg.find('**/room-diningroom-redroom'), egg.find('**/room-diningroom-click'), egg.find('**/room-diningroom-hover'), egg.find('**/room-diningroom-click')), relief=None) else: btn_dining_room = DirectButton( scale=scale_long, pos=(0, 0, -0.5), command=self.set_room, extraArgs=[DINING_ROOM], geom=(egg.find('**/room-diningroom-ready'), egg.find('**/room-diningroom-click'), egg.find('**/room-diningroom-hover'), egg.find('**/room-diningroom-click')), relief=None) self.gui["btn_kitchen"] = btn_kitchen self.gui["btn_living_room"] = btn_living_room self.gui["btn_bedroom"] = btn_bedroom self.gui["btn_porch"] = btn_porch self.gui["btn_dining_room"] = btn_dining_room # day count txt_day_number = OnscreenText(text="Day: {}".format( self.level_holder.day), pos=(-0.75, 0.75), scale=0.2, fg=(1, 1, 1, 1)) self.text["txt_day_number"] = txt_day_number # timer self.timer = Timer(0)