示例#1
0
class Level2:
    def __init__(self):
        self.text_pointers = []
        self.keyboard = Controller()
        
        base.cam2dp.node().getDisplayRegion(0).setSort(-20)
        self.runner_font = loader.loadFont('./fonts/runner/BLADRMF_.TTF')
        self.p1 = player.Player()

    def start(self):
        # load
        self.level2 = loader.loadModel("models/CECUT.bam")
        self.level2.reparentTo(render)
        self.level2.setScale(1, 1, 1)
        self.level2.setPos(0,0, 0)

        # start
        camera.setPos(0.5,-8.5,4)
        camera.lookAt(self.level2)

        # start
        self.background = OnscreenImage(
            parent=render2dp, image="textures/Skunight.png")  # Load an image object

        color = (0.8, 0.8, 0.8)
        #self.linfog = Fog("Scene-wide exponential Fog object")
        #self.linfog.setColor(*color)
        #self.linfog.setLinearRange(0, 35)
        #self.linfog.setLinearFallback(45, 160, 320)
        #render.setFog(self.linfog)
        base.setBackgroundColor(*color)
        self.plight = PointLight("plight")
        self.plight.setColor((1, 1, 1, 1))
        self.plight.setAttenuation((1, 0, 1))

        self.buttons()
        self.text = OnscreenText(font=self.runner_font, text='Que concierto deseas que se presente en el sotano de las ruinas del CECUT?', scale=0.09, pos=[
            0, 0.5], fg=[240, 10, 10, 1], shadow=[0.5, 0.5, 0.5, 0.5], shadowOffset=(0.04, 0.04),wordwrap=20)
        
    def __del__(self):
        print('[*] Destructor called')

    def buttons(self):
        self.option1 = DirectButton(
            text=("Good Bunny"),
            text_font=self.runner_font,
            scale=0.1,
            pos=(-0, -5, -0.75),
            frameTexture=None,
            command=self.onClick1,
            relief=DGG.FLAT)

        self.option2 = DirectButton(
            text=("Los Demonios de Ecatepan"),
            text_font=self.runner_font,
            scale=0.1,
            pos=(0, -5, -0.55),
            frameTexture=None,
            command=self.onClick2,
            relief=DGG.FLAT)

        self.option3 = DirectButton(
            text=("La filarmonica de Ensenada"),
            text_font=self.runner_font,
            scale=0.1,
            pos=(0, -5, -0.35),
            frameTexture=None,
            command=self.onClick3,
            relief=DGG.FLAT)

    def onClick1(self):
        print("[*] Click!")
        self.p1.change_pol(1)
        self.p1.change_edu(1)
        self.p1.change_pop(1)
        self.stop()

    def onClick2(self):
        print("[*] Click!")
        self.p1.change_pol(1)
        self.p1.change_edu(2)
        self.p1.change_pop(3)
        self.stop()

    def onClick3(self):
        print("[*] Click!")
        self.p1.change_pol(0)
        self.p1.change_edu(5)
        self.p1.change_pop(9)
        self.stop()

    def stop(self):
        self.p1.savefile()
        self.text.remove_node()
        self.option1.remove_node()
        self.option2.remove_node()
        self.option3.remove_node()
        self.background.remove_node()
        self.level2.remove_node()
        render.clearLight()
        self.keyboard.press('5' )
        self.keyboard.release('5' )
        self.__del__()
class Level4:
    def __init__(self):
        self.text_pointers = []
        self.keyboard = Controller()

        base.cam2dp.node().getDisplayRegion(0).setSort(-20)
        self.runner_font = loader.loadFont('./fonts/runner/BLADRMF_.TTF')
        self.p1 = player.Player()

    def start(self):
        # load
        self.level4 = loader.loadModel("models/Picacho_diablo_11_068m.bam")
        self.level4.reparentTo(render)
        self.level4.setScale(1, 1, 1)
        self.level4.setPos(0, 0, 0)

        # start
        camera.setPos(-2, 2, 4)
        camera.lookAt(self.level4)

        # start
        self.background = OnscreenImage(
            parent=render2dp,
            image="textures/Skunight.png")  # Load an image object

        color = (0.8, 0.8, 0.8)
        self.linfog = Fog("Scene-wide exponential Fog object")
        self.linfog.setColor(*color)
        self.linfog.setLinearRange(0, 35)
        self.linfog.setLinearFallback(45, 160, 320)
        render.setFog(self.linfog)
        base.setBackgroundColor(*color)
        self.plight = PointLight("plight")
        self.plight.setColor((1, 1, 1, 1))
        self.plight.setAttenuation((1, 0, 1))

        self.buttons()
        self.text = OnscreenText(
            font=self.runner_font,
            text=
            'La comunidad sin hogares de Baja California se ha reubicado al PICACHO DEL DIABLO!',
            scale=0.09,
            pos=[0, 0.5],
            fg=[240, 10, 10, 1],
            shadow=[0.5, 0.5, 0.5, 0.5],
            shadowOffset=(0.04, 0.04),
            wordwrap=20)

    def __del__(self):
        print('[*] Destructor called')

    def buttons(self):
        self.option1 = DirectButton(text=("NUKE 'EM BOYS"),
                                    text_font=self.runner_font,
                                    scale=0.1,
                                    pos=(0, -5, -0.75),
                                    frameTexture=None,
                                    command=self.onClick1,
                                    relief=DGG.FLAT)

        self.option2 = DirectButton(text=("construir barda"),
                                    text_font=self.runner_font,
                                    scale=0.1,
                                    pos=(0, -5, -0.55),
                                    frameTexture=None,
                                    command=self.onClick2,
                                    relief=DGG.FLAT)

        self.option3 = DirectButton(text=("cortarles recursos e ignorar"),
                                    text_font=self.runner_font,
                                    scale=0.1,
                                    pos=(0, -5, -0.35),
                                    frameTexture=None,
                                    command=self.onClick3,
                                    relief=DGG.FLAT)

    def onClick1(self):
        print("[*] Click!")
        self.p1.change_pol(1)
        self.p1.change_edu(1)
        self.p1.change_pop(1)
        self.stop()

    def onClick2(self):
        print("[*] Click!")
        self.p1.change_pol(1)
        self.p1.change_edu(2)
        self.p1.change_pop(3)
        self.stop()

    def onClick3(self):
        print("[*] Click!")
        self.p1.change_pol(0)
        self.p1.change_edu(5)
        self.p1.change_pop(9)
        self.stop()

    def stop(self):
        self.p1.savefile()
        self.text.remove_node()
        self.option1.remove_node()
        self.option2.remove_node()
        self.option3.remove_node()
        self.background.remove_node()
        self.level4.remove_node()
        render.clearLight()
        self.keyboard.press('7')
        self.keyboard.release('7')
        self.__del__()
class Level3:
    def __init__(self):
        self.text_pointers = []
        self.keyboard = Controller()

        base.cam2dp.node().getDisplayRegion(0).setSort(-20)
        self.runner_font = loader.loadFont('./fonts/runner/BLADRMF_.TTF')
        self.p1 = player.Player()

    def start(self):
        # load
        self.level3 = loader.loadModel("models/Estacionamiento_Long.bam")
        self.level3.reparentTo(render)
        self.level3.setScale(1, 1, 1)
        self.level3.setPos(0, 0, 0)

        # start
        camera.setPos(-2, 2, 4)
        camera.lookAt(self.level3)

        # start
        self.background = OnscreenImage(
            parent=render2dp,
            image="textures/Skunight.png")  # Load an image object

        color = (0.8, 0.8, 0.8)
        self.linfog = Fog("Scene-wide exponential Fog object")
        self.linfog.setColor(*color)
        self.linfog.setLinearRange(0, 35)
        self.linfog.setLinearFallback(45, 160, 320)
        render.setFog(self.linfog)
        base.setBackgroundColor(*color)
        self.plight = PointLight("plight")
        self.plight.setColor((1, 1, 1, 1))
        self.plight.setAttenuation((1, 0, 1))

        self.buttons()
        self.text = OnscreenText(font=self.runner_font,
                                 text='Propone el uso de la vieja Monumental',
                                 scale=0.09,
                                 pos=[0, 0.5],
                                 fg=[240, 10, 10, 1],
                                 shadow=[0.5, 0.5, 0.5, 0.5],
                                 shadowOffset=(0.04, 0.04),
                                 wordwrap=20)

    def __del__(self):
        print('[*] Destructor called')

    def buttons(self):
        self.option1 = DirectButton(text=("un parque"),
                                    text_font=self.runner_font,
                                    scale=0.1,
                                    pos=(0, -5, -0.75),
                                    frameTexture=None,
                                    command=self.onClick1,
                                    relief=DGG.FLAT)

        self.option2 = DirectButton(text=("una maquila solar"),
                                    text_font=self.runner_font,
                                    scale=0.1,
                                    pos=(0, -5, -0.55),
                                    frameTexture=None,
                                    command=self.onClick2,
                                    relief=DGG.FLAT)

        self.option3 = DirectButton(text=("un terreno valdio"),
                                    text_font=self.runner_font,
                                    scale=0.1,
                                    pos=(0, -5, -0.35),
                                    frameTexture=None,
                                    command=self.onClick3,
                                    relief=DGG.FLAT)

    def onClick1(self):
        print("[*] Click!")
        self.p1.change_pol(1)
        self.p1.change_edu(1)
        self.p1.change_pop(1)
        self.stop()

    def onClick2(self):
        print("[*] Click!")
        self.p1.change_pol(1)
        self.p1.change_edu(2)
        self.p1.change_pop(3)
        self.stop()

    def onClick3(self):
        print("[*] Click!")
        self.p1.change_pol(0)
        self.p1.change_edu(5)
        self.p1.change_pop(9)
        self.stop()

    def stop(self):
        self.p1.savefile()
        self.text.remove_node()
        self.option1.remove_node()
        self.option2.remove_node()
        self.option3.remove_node()
        self.background.remove_node()
        self.level3.remove_node()
        render.clearLight()
        self.keyboard.press('6')
        self.keyboard.release('6')
        self.__del__()
示例#4
0
class Level1:
    def __init__(self):
        self.text_pointers = []
        self.keyboard = Controller()

        base.cam2dp.node().getDisplayRegion(0).setSort(-20)
        self.runner_font = loader.loadFont('./fonts/runner/BLADRMF_.TTF')
        self.p1 = player.Player()

    def start(self):
        self.level1 = loader.loadModel("models/Campestre_light.bam")
        self.level1.reparentTo(render)
        self.level1.setScale(1, 1, 1)
        self.level1.setPos(0, 0, 0)
        camera.setPos(-2, 2, 4)
        camera.lookAt(self.level1)
        self.background = OnscreenImage(
            parent=render2dp,
            image="textures/Skunight.png")  # Load an image object
        color = (0.8, 0.8, 0.8)
        self.linfog = Fog("Scene-wide exponential Fog object")
        self.linfog.setColor(*color)
        self.linfog.setLinearRange(0, 35)
        self.linfog.setLinearFallback(45, 160, 320)
        render.setFog(self.linfog)
        base.setBackgroundColor(*color)
        self.plight = PointLight("plight")
        self.plight.setColor((1, 1, 1, 1))
        self.plight.setAttenuation((1, 0, 1))

        self.buttons()

        self.text = OnscreenText(
            font=self.runner_font,
            text=
            'El emperador Hank convirtio el campo Campestre en un campo de practica para Xolos. Ahora eres alcalde:',
            scale=0.09,
            pos=[0, 0.5],
            fg=[240, 10, 10, 1],
            shadow=[0.5, 0.5, 0.5, 0.5],
            shadowOffset=(0.04, 0.04),
            wordwrap=20)

    def __del__(self):
        print('[*] Destructor called')

    def buttons(self):
        self.option1 = DirectButton(text=("dejarlo"),
                                    text_font=self.runner_font,
                                    scale=0.1,
                                    pos=(-1, -5, -0.75),
                                    frameTexture=None,
                                    command=self.onClick1,
                                    relief=DGG.FLAT)

        self.option2 = DirectButton(text=("quemarlo"),
                                    text_font=self.runner_font,
                                    scale=0.1,
                                    pos=(0, -5, -0.75),
                                    frameTexture=None,
                                    command=self.onClick2,
                                    relief=DGG.FLAT)

        self.option3 = DirectButton(text=("adaptarlo"),
                                    text_font=self.runner_font,
                                    scale=0.1,
                                    pos=(1, -5, -0.75),
                                    frameTexture=None,
                                    command=self.onClick3,
                                    relief=DGG.FLAT)

    def onClick1(self):
        print("[*] Click!")
        self.p1.change_pol(1)
        self.p1.change_edu(1)
        self.p1.change_pop(1)
        self.stop()

    def onClick2(self):
        print("[*] Click!")
        self.p1.change_pol(1)
        self.p1.change_edu(2)
        self.p1.change_pop(3)
        self.stop()

    def onClick3(self):
        print("[*] Click!")
        self.p1.change_pol(0)
        self.p1.change_edu(5)
        self.p1.change_pop(9)
        self.stop()

    def stop(self):
        self.p1.savefile()
        self.text.remove_node()
        self.option1.remove_node()
        self.option2.remove_node()
        self.option3.remove_node()
        self.background.remove_node()
        self.level1.remove_node()
        render.clearLight()
        self.keyboard.press('4')
        self.keyboard.release('4')
        self.__del__()
示例#5
0
class Game(ShowBase, Player, Walls):
    def __init__(self):
        ShowBase.__init__(self)
        Player.__init__(self)
        Walls.__init__(self)
        Road.__init__(self)

        self.all_car = []
        self.carN = 1
        self.car_y = [-6, -4, -2, 0, 2, 4, 6, 8, 10]
        self.car_x = [-25, 25]
        self.speed = [.1, .2, .3, .4]
        self.score = 0
        self.highscore = 0
        self.output = "Score: " + str(self.score)
        self.difficulty = .3
        self.font = loader.loadFont('Fonts/SigmarOne-Regular.ttf')
        self.collision = False

        self.env = loader.loadModel("Models/env.egg.pz")
        self.env.reparentTo(self.render)
        self.env.setScale(30)

        self.traverser = CollisionTraverser('traverser')
        base.cTrav = self.traverser
        self.colEvent = CollisionHandlerEvent()
        self.traverser.addCollider(self.player_collision, self.colEvent)
        self.colEvent.addInPattern("into-%in")
        self.colEvent.addOutPattern("out-%in")

        for name in ["Twall", "Bwall", "Rwall", "Lwall"]:
            self.accept(f"into-{name}", self.Check)
            self.accept(f"out-{name}", self.Out)

        base.setBackgroundColor(.1, .1, .1)
        base.disableMouse()
        camera.setPosHpr(0, -35, 20, 0, -30, 0)

        taskMgr.add(self.Move, "move_player")
        taskMgr.add(self.car_check, "car_check")
        self.carSeq = Sequence(Func(self.MakeCar), Wait(self.difficulty))
        self.carSeq.loop()

        self.text = OnscreenText(text=self.output,
                                 pos=(1, .9),
                                 scale=.1,
                                 mayChange=1,
                                 font=self.font,
                                 fg=(1, .5, 0, 1))
        self.idle.play()
        self.pause(False)

    def Check(self, coll):
        if coll.getIntoNodePath().getName() == "Twall":
            self.wOn = False
        if coll.getIntoNodePath().getName() == "Rwall":
            self.dOn = False
        if coll.getIntoNodePath().getName() == "Bwall":
            self.sOn = False
        if coll.getIntoNodePath().getName() == "Lwall":
            self.aOn = False

    def Out(self, coll):
        if coll.getIntoNodePath().getName() == "Twall":
            self.wOn = True
        if coll.getIntoNodePath().getName() == "Rwall":
            self.dOn = True
        if coll.getIntoNodePath().getName() == "Bwall":
            self.sOn = True
        if coll.getIntoNodePath().getName() == "Lwall":
            self.aOn = True

    def MakeCar(self):
        shuffle(self.car_y)
        shuffle(self.car_x)
        shuffle(self.speed)
        self.all_car.append(
            Car(self.speed[0], self.car_x[0], self.car_y[0], str(self.carN)))
        self.carN += 1

    def car_check(self, task):
        for car in self.all_car:
            if car.x < -25 or car.x > 25:
                self.all_car.remove(car)
                car.car.removeNode()
                taskMgr.remove('move_car' + car.car_num)
                self.score += 1
                self.output = "Score: " + str(self.score)
                self.text.setText(self.output)
            if not (self.collision):
                self.accept(f"into-{car.name}", self.collide_car)

        return Task.cont

    def collide_car(self, coll):
        for car in self.all_car:
            if car.carNode != coll.getIntoNodePath():
                car.car.removeNode()
            taskMgr.remove('move_car' + car.car_num)
        self.collision = True
        self.pause()

    def pause(self, coll=True):
        self.carSeq.pause()
        self.walk.stop()
        taskMgr.remove("move_player")
        if self.score > self.highscore:
            self.highscore = self.score
        self.text.setPos(10, 10)
        if coll:
            self.dead_text = OnscreenText(
                text=
                f"You Have Been Hit \n Score: {self.score} \n Highscore:  {self.highscore} \n \n \n Press R to play again \n Press F to exit",
                pos=(0, .4),
                scale=.1,
                mayChange=1,
                fg=(.1, .7, .1, 1),
                font=self.font)
        else:
            self.dead_text = OnscreenText(
                text=f"Dodge the Cars! \n \n Press R to start",
                pos=(0, .4),
                scale=.1,
                mayChange=1,
                fg=(0, .6, 1, 1),
                font=self.font)
        self.accept("r", self.un_pause)
        self.accept("f", self.exit)

    def un_pause(self):
        for car in self.all_car:
            car.car.removeNode()
        for car in self.all_car:
            self.all_car.remove(car)

        taskMgr.remove("pause")
        taskMgr.add(self.Move, "move_player")
        self.carSeq.resume()
        self.ignore("r")
        self.ignore("f")

        self.score = 0
        self.dead_text.remove_node()
        self.output = "Score: " + str(self.score)
        self.text.setText(self.output)
        self.text.setPos(1.1, .9)
        self.collision = False

    def exit(self):
        finalizeExit()