示例#1
0
    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)
示例#2
0
    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)
示例#5
0
    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)
示例#6
0
    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)
示例#8
0
    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()
示例#9
0
    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)