def buildStartingArea(self):
        plane = Prism(self.pos, 600, 600, 20, self.white, self.snow, 'start')
        self.parts += (plane, )

        auxillary = Prism(
            LVector3(plane.pos.x + plane.len / 2, plane.pos.y + plane.wid,
                     plane.pos.z), plane.len / 2, plane.wid / 10, plane.dep,
            self.white, self.snow, 'auxillary')
        self.parts += (auxillary, )

        self.platformingOne(auxillary)
Exemple #2
0
    def setSecondRoom(self, floor, roof):
        distBetweenWalls = 300
        wall_1 = Prism(
            LVector3(floor.pos.x, floor.pos.y + floor.wid, floor.pos.z + roof),
            100, 2000, 1000, self.white, self.innerwalltex, 'wall_1')
        self.secondRoomParts += (wall_1, )

        wall_2 = Prism(
            LVector3(wall_1.pos.x - distBetweenWalls, floor.pos.y,
                     wall_1.pos.z), wall_1.len, wall_1.wid + floor.wid,
            wall_1.dep, self.white, self.innerwalltex, 'wall_2')
        self.secondRoomParts += (wall_2, )

        self.platformsRoom2(floor, distBetweenWalls)

        self.setThirdRoom(wall_1, wall_2, distBetweenWalls)
Exemple #3
0
    def __init__(self, pos):
        self.parts = ()
        self.firstRoomParts = ()
        self.secondRoomParts = ()
        self.thirdRoomParts = ()
        self.iceCubes = ()
        self.white = LVector4(1, 1, 1, 1)
        self.innerwalltex = loader.loadTexture("caverock.jpg")
        self.snowTex = loader.loadTexture("ground.jpg")

        ########
        #
        #   ENTRANCE OF CAVE
        #
        ########
        self.entrance = Prism(pos, 200, 500, 50, self.white, self.snowTex,
                              'entrance')
        self.parts += (self.entrance, )

        self.setFirstRoom()

        for p in self.firstRoomParts:
            self.parts += (p, )

        for p in self.secondRoomParts:
            self.parts += (p, )

        for p in self.thirdRoomParts:
            self.parts += (p, )

        for p in self.iceCubes:
            self.parts += (p, )
Exemple #4
0
    def setThirdRoom(self, wall1, wall2, dist):
        sidelen = 250

        wall_3 = Prism(
            LVector3(wall1.pos.x, wall1.pos.y + wall1.wid,
                     wall1.pos.z), sidelen + wall1.len, wall1.len, wall1.dep,
            self.white, self.innerwalltex, 'wall_3')
        self.thirdRoomParts += (wall_3, )

        wall_4 = Prism(
            LVector3(wall2.pos.x, wall2.pos.y + wall2.wid,
                     wall2.pos.z), wall2.len, sidelen * 2, wall2.dep,
            self.white, self.innerwalltex, 'wall_4')
        self.thirdRoomParts += (wall_4, )

        wall_5 = Prism(
            LVector3(wall_3.pos.x + wall_3.len, wall_4.pos.y,
                     wall_4.pos.z), wall_4.len, wall_4.wid, wall_4.dep,
            self.white, self.innerwalltex, 'wall_5')
        self.thirdRoomParts += (wall_5, )

        backWall_right = Prism(
            LVector3(wall_5.pos.x - wall_3.len / 2.5,
                     wall_5.pos.y + wall_5.wid, wall_5.pos.z),
            wall_3.len / 2.5, wall_5.len, wall_5.dep, self.white,
            self.innerwalltex, 'backWall_right')
        self.thirdRoomParts += (backWall_right, )

        backWall_left = Prism(
            LVector3(wall_4.pos.x + wall_4.len, wall_4.pos.y + wall_4.wid,
                     wall_4.pos.z), backWall_right.len, backWall_right.wid,
            backWall_right.dep, self.white, self.innerwalltex, 'backWall_left')
        self.thirdRoomParts += (backWall_left, )

        safePlat = Prism(
            LVector3(wall2.pos.x + wall2.len, wall2.pos.y + wall2.wid,
                     wall2.pos.z - wall2.dep / 3), dist - wall2.len,
            wall_4.wid / 5, wall2.dep / 3, self.white, self.innerwalltex,
            'safePlat')
        self.thirdRoomParts += (safePlat, )

        safePlat2 = Prism(
            LVector3(safePlat.pos.x, safePlat.pos.y + safePlat.wid,
                     safePlat.pos.z), safePlat.len / 1.5,
            backWall_left.pos.y - (safePlat.pos.y + safePlat.wid),
            safePlat.dep, self.white, self.innerwalltex, 'safePlat2')
        self.thirdRoomParts += (safePlat2, )

        #The only ice cube that will not be part of the third room ice cube queue is the big cube at the end of the cave
        self.bigCube = IceCube(
            LVector3(backWall_left.pos.x + backWall_left.len * 1.8,
                     backWall_left.pos.y - backWall_left.wid / 3.9,
                     backWall_left.pos.z - backWall_left.dep / 3), 26, 0, 0,
            0.1)

        #Set platforms in room 3
        self.platformsRoom3(safePlat)
Exemple #5
0
    def platformsRoom3(self, plat):
        space = 30
        scale = 8
        displacement = 50
        floatspeed = 3
        cube1 = IceCube(
            LVector3(plat.pos.x + plat.len,
                     plat.pos.y + plat.wid + plat.wid / 2, plat.pos.z), scale,
            displacement, floatspeed)
        self.iceCubes += (cube1, )
        cube2 = IceCube(
            LVector3(cube1.model.getX() + scale * space, cube1.model.getY(),
                     cube1.model.getZ()), scale, displacement, floatspeed)
        self.iceCubes += (cube2, )
        cube3 = IceCube(
            LVector3(cube2.model.getX() + scale * space, cube2.model.getY(),
                     cube2.model.getZ()), scale, displacement, floatspeed)
        self.iceCubes += (cube3, )

        cube4 = IceCube(
            LVector3(cube3.model.getX(),
                     cube3.model.getY() + scale * space, cube3.model.getZ()),
            scale, displacement, floatspeed)
        self.iceCubes += (cube4, )
        cube5 = IceCube(
            LVector3(cube4.model.getX(),
                     cube4.model.getY() + scale * space, cube4.model.getZ()),
            scale, displacement, floatspeed)
        self.iceCubes += (cube5, )

        cube6 = IceCube(
            LVector3(cube1.model.getX(),
                     cube1.model.getY() + scale * space, cube1.model.getZ()),
            scale, displacement, floatspeed)
        self.iceCubes += (cube6, )
        cube7 = IceCube(
            LVector3(cube6.model.getX(),
                     cube6.model.getY() + scale * space, cube6.model.getZ()),
            scale, displacement, floatspeed)
        self.iceCubes += (cube7, )

        cube8 = IceCube(
            LVector3(cube7.model.getX() + scale * space, cube7.model.getY(),
                     cube7.model.getZ()), scale, displacement, floatspeed)
        self.iceCubes += (cube8, )

        safePlat = Prism(
            LVector3(cube4.model.getX() - space * scale - space * 2,
                     cube4.model.getY() - 25,
                     cube4.model.getZ() + 75), 150, 150, 300, self.white,
            self.innerwalltex, 'safePlat2')
        self.thirdRoomParts += (safePlat, )
    def __init__(self):
        ShowBase.__init__(self)

        #####################
        #
        #   Simply testing procedural geometry generation
        #
        #####################
        prism = Prism(LVector3(0,0,0), 100, 100, 20, LVector4(1,1,1,1), loader.loadTexture("ground.jpg"), 'prism')
        prism.generate(render)

        ramp = Ramp(LVector3(100,100,100), 100, 100, 20, LVector4(1,1,1,1), loader.loadTexture("ground.jpg"), 'ramp')
        ramp.generate(render)
    def __init__(self, pos):
        self.parts = ()
        self.trees = ()

        self.white = LVector4(1, 1, 1, 1)
        self.snowtex = loader.loadTexture("ground.jpg")
        self.ice = loader.loadTexture("ice.jpg")

        piece_1 = Prism(pos, 400, 400, 50, self.white, self.snowtex, 'piece_1')
        self.parts += (piece_1, )

        piece_2 = Prism(
            LVector3(piece_1.pos.x, piece_1.pos.y + piece_1.wid,
                     piece_1.pos.z), piece_1.len / 1.5, piece_1.wid,
            piece_1.dep, self.white, self.snowtex, 'piece_2')
        self.parts += (piece_2, )

        piece_3 = Prism(
            LVector3(piece_1.pos.x + piece_1.wid + 50, piece_1.pos.y,
                     piece_1.pos.z), 1000, 700, 50, self.white, self.snowtex,
            'piece_3')
        self.parts += (piece_3, )

        piece_4 = Prism(
            LVector3(piece_3.pos.x + piece_3.len - 250,
                     piece_3.pos.y + piece_3.wid, piece_3.pos.z), 250, 500, 50,
            self.white, self.ice, 'piece_4')
        self.parts += (piece_4, )

        piece_5 = Prism(
            LVector3(piece_3.pos.x, piece_3.pos.y + piece_3.wid,
                     piece_3.pos.z), 50, 200, 10, self.white, self.snowtex,
            'piece_5')
        self.parts += (piece_5, )

        piece_6 = Prism(
            LVector3(piece_5.pos.x + piece_5.len, piece_4.pos.y,
                     piece_4.pos.z), 50, 100, 10, self.white, self.snowtex,
            'piece_6')
        self.parts += (piece_6, )

        piece_7 = Prism(
            LVector3(piece_4.pos.x - 900, piece_4.pos.y + piece_4.wid + 50,
                     piece_4.pos.z), 1000, 1000, 10, self.white, self.snowtex,
            'piece_7')
        self.parts += (piece_7, )
    def platformingOne(self, aux):
        scale = 2
        space = 20
        displacement = 4
        floatspeed = 5
        meltspeed = .005
        plat_1 = IceCube(
            LVector3(aux.pos.x + aux.len / 2, aux.pos.y + aux.wid * 1.5,
                     aux.pos.z - 10), scale, displacement, floatspeed,
            meltspeed)
        self.iceCubes += (plat_1, )

        plat_2 = IceCube(
            LVector3(plat_1.model.getX(),
                     plat_1.model.getY() + scale * space, plat_1.model.getZ()),
            scale, displacement, floatspeed, meltspeed)
        self.iceCubes += (plat_2, )

        plat_3 = IceCube(
            LVector3(plat_2.model.getX() + space,
                     plat_2.model.getY() + scale * space, plat_2.model.getZ()),
            scale, displacement, floatspeed, meltspeed)
        self.iceCubes += (plat_3, )

        plat_4 = IceCube(
            LVector3(plat_3.model.getX() + space * scale, plat_3.model.getY(),
                     plat_3.model.getZ() - 5), scale * 1.5, displacement * 2,
            floatspeed, meltspeed)
        self.iceCubes += (plat_4, )

        plat_5 = IceCube(
            LVector3(plat_4.model.getX() + space * scale, plat_3.model.getY(),
                     plat_3.model.getZ()), scale, displacement, floatspeed,
            meltspeed * 2)
        self.iceCubes += (plat_5, )

        plat_6 = Prism(
            LVector3(plat_5.model.getX() + space * scale / 1.5,
                     plat_5.model.getY() - space, aux.pos.z), aux.len / 5,
            aux.wid * 2, aux.dep, self.white, self.snow, 'plat_6')
        self.parts += (plat_6, )

        self.platformingTwo(plat_6)
Exemple #9
0
    def setThirdRoom(self, wall1, wall2, dist):
        sidelen = 500

        wall_3 = Prism(
            LVector3(wall1.pos.x, wall1.pos.y + wall1.wid,
                     wall1.pos.z), sidelen + wall1.len, wall1.len, wall1.dep,
            self.white, self.innerwalltex, 'wall_3')
        self.thirdRoomParts += (wall_3, )

        wall_4 = Prism(
            LVector3(wall2.pos.x, wall2.pos.y + wall2.wid,
                     wall2.pos.z), wall2.len, sidelen * 2, wall2.dep,
            self.white, self.innerwalltex, 'wall_4')
        self.thirdRoomParts += (wall_4, )

        wall_5 = Prism(
            LVector3(wall_3.pos.x + wall_3.len, wall_4.pos.y,
                     wall_4.pos.z), wall_4.len, wall_4.wid, wall_4.dep,
            self.white, self.innerwalltex, 'wall_5')
        self.thirdRoomParts += (wall_5, )

        backWall_right = Prism(
            LVector3(wall_5.pos.x - wall_3.len / 2.5,
                     wall_5.pos.y + wall_5.wid, wall_5.pos.z),
            wall_3.len / 2.5, wall_5.len, wall_5.dep, self.white,
            self.innerwalltex, 'backWall_right')
        self.thirdRoomParts += (backWall_right, )

        backWall_left = Prism(
            LVector3(wall_4.pos.x + wall_4.len, wall_4.pos.y + wall_4.wid,
                     wall_4.pos.z), backWall_right.len, backWall_right.wid,
            backWall_right.dep, self.white, self.innerwalltex, 'backWall_left')
        self.thirdRoomParts += (backWall_left, )

        safePlat = Prism(
            LVector3(wall2.pos.x + wall2.len, wall2.pos.y + wall2.wid,
                     wall2.pos.z - wall2.dep / 3), dist - wall2.len,
            wall_4.wid / 5, wall2.dep / 3, self.white, self.innerwalltex,
            'safePlat')
        self.thirdRoomParts += (safePlat, )

        bigCube = IceCube(
            LVector3(backWall_left.pos.x + backWall_left.len * 1.5,
                     backWall_left.pos.y - backWall_left.wid,
                     backWall_left.pos.z - backWall_left.dep / 4), 30, 50, 5)
        self.iceCubes += (bigCube, )

        self.platformsRoom3(safePlat)
Exemple #10
0
    def setFirstRoom(self):
        distFloortoEnt = 500
        roofHeight = 300
        floor = Prism(
            LVector3(self.entrance.pos.x - distFloortoEnt,
                     self.entrance.pos.y + self.entrance.wid,
                     self.entrance.pos.z - 30),
            self.entrance.len + distFloortoEnt, 400, 50, self.white,
            self.innerwalltex, 'firstFloor')
        self.firstRoomParts += (floor, )

        ramp_1 = Ramp(
            LVector3(floor.pos.x + floor.len / 1.6, floor.pos.y,
                     floor.pos.z), floor.len / 8, floor.wid, 60, self.white,
            self.innerwalltex, 'ramp_1')
        self.firstRoomParts += (ramp_1, )

        ramp_2 = Ramp(
            LVector3(ramp_1.pos.x + ramp_1.len * 1.5, ramp_1.pos.y - 1400,
                     ramp_1.pos.z), ramp_1.len, ramp_1.wid, ramp_1.dep * 1.5,
            self.white, self.innerwalltex, 'ramp_2')
        ramp_2.node.setH(180)
        self.firstRoomParts += (ramp_2, )
        ramp_3 = Ramp(
            LVector3(ramp_1.pos.x - (ramp_1.len) * 2 - (ramp_1.len) / 2,
                     ramp_1.pos.y, ramp_1.pos.z), ramp_1.len * 1.5, ramp_1.wid,
            ramp_1.dep * 1.4, self.white, self.innerwalltex, 'ramp_3')
        self.firstRoomParts += (ramp_3, )

        stalag_1 = Prism(
            LVector3(floor.pos.x + floor.len / 2, floor.pos.y + floor.wid / 2,
                     floor.pos.z + roofHeight), 30, 30, 120, self.white,
            self.innerwalltex, 'stalag_1')
        self.firstRoomParts += (stalag_1, )

        stalag_2 = Prism(
            LVector3(stalag_1.pos.x + stalag_1.wid, stalag_1.pos.y + 10,
                     stalag_1.pos.z), stalag_1.len - 10, stalag_1.wid - 10,
            stalag_1.dep / 2, self.white, self.innerwalltex, 'stalag_2')
        self.firstRoomParts += (stalag_2, )

        stalag_3 = Prism(
            LVector3(stalag_1.pos.x - stalag_2.wid, stalag_2.pos.y,
                     stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep,
            self.white, self.innerwalltex, 'stalag_3')
        self.firstRoomParts += (stalag_3, )

        stalag_4 = Prism(
            LVector3(stalag_1.pos.x + 10, stalag_1.pos.y - stalag_1.wid,
                     stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep,
            self.white, self.innerwalltex, 'stalag_4')
        self.firstRoomParts += (stalag_4, )

        stalag_5 = Prism(
            LVector3(stalag_3.pos.x, stalag_1.pos.y + stalag_2.wid,
                     stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep,
            self.white, self.innerwalltex, 'stalag_5')
        self.firstRoomParts += (stalag_5, )

        mite_1 = Prism(
            LVector3(ramp_1.pos.x - ramp_1.wid / 2, floor.pos.y,
                     floor.pos.z + roofHeight / 2), ramp_2.len / 2, 45,
            roofHeight / 2, self.white, self.innerwalltex, 'mite_1')
        self.firstRoomParts += (mite_1, )

        mite_2 = Prism(
            LVector3(mite_1.pos.x + mite_1.wid, mite_1.pos.y,
                     floor.pos.z + roofHeight / 1.3), mite_1.len,
            mite_1.wid + 10, roofHeight / 1.3, self.white, self.innerwalltex,
            'mite_2')
        self.firstRoomParts += (mite_2, )

        rod_1 = Prism(
            LVector3(floor.pos.x + floor.wid / 10, floor.pos.y + floor.wid / 2,
                     floor.pos.z + roofHeight), 50, 50, roofHeight, self.white,
            self.innerwalltex, 'rod_1')
        self.firstRoomParts += (rod_1, )

        rightWall_1 = Prism(
            LVector3(floor.pos.x + floor.len - 10, floor.pos.y,
                     floor.pos.z + roofHeight), 10, floor.wid / 3, roofHeight,
            self.white, self.innerwalltex, 'rightWall_1')
        self.firstRoomParts += (rightWall_1, )

        rightWall_2 = Prism(
            LVector3(rightWall_1.pos.x, rightWall_1.pos.y + rightWall_1.wid,
                     floor.pos.z + roofHeight / 1.5), rightWall_1.len,
            floor.wid / 5, roofHeight / 1.5, self.white, self.innerwalltex,
            'rightWall_2')
        self.firstRoomParts += (rightWall_2, )

        rightWall_3 = Prism(
            LVector3(rightWall_2.pos.x - 20,
                     rightWall_2.pos.y + rightWall_2.wid,
                     floor.pos.z + roofHeight / 1.9), rightWall_1.len + 20,
            floor.wid / 7, roofHeight / 1.9, self.white, self.innerwalltex,
            'rightWall_3')
        self.firstRoomParts += (rightWall_3, )

        rightWall_4 = Prism(
            LVector3(
                rightWall_1.pos.x, floor.pos.y +
                (rightWall_1.wid + rightWall_2.wid + rightWall_3.wid),
                floor.pos.z + roofHeight), rightWall_2.len,
            floor.wid - (rightWall_1.wid + rightWall_2.wid + rightWall_3.wid),
            roofHeight, self.white, self.innerwalltex, 'rightWall_4')
        self.firstRoomParts += (rightWall_4, )

        self.setSecondRoom(floor, roofHeight)
Exemple #11
0
    def platformsRoom3(self, plat):
        space = 20
        scale = 5
        displacement = 3
        floatspeed = 5
        meltspeed = .05
        cube1 = IceCube(
            LVector3(plat.pos.x + plat.len / 1.1, plat.pos.y + plat.wid * 1.5,
                     plat.pos.z - 15), scale, displacement, floatspeed,
            meltspeed)
        self.iceCubesThirdRoom += (cube1, )
        self.corn1 = cube1.model.getPos()

        cube2 = IceCube(
            LVector3(cube1.model.getX() + scale * space, cube1.model.getY(),
                     cube1.model.getZ()), scale, displacement, floatspeed,
            meltspeed)
        self.iceCubesThirdRoom += (cube2, )

        cube3 = IceCube(
            LVector3(cube2.model.getX() + scale * space, cube2.model.getY(),
                     cube2.model.getZ()), scale, displacement, floatspeed,
            meltspeed)
        self.iceCubesThirdRoom += (cube3, )
        self.corn2 = cube3.model.getPos()

        cube4 = IceCube(
            LVector3(cube3.model.getX(),
                     cube3.model.getY() + scale * space, cube3.model.getZ()),
            scale, displacement, floatspeed, meltspeed)
        self.iceCubesThirdRoom += (cube4, )

        cube5 = IceCube(
            LVector3(cube4.model.getX(),
                     cube4.model.getY() + scale * space, cube4.model.getZ()),
            scale, displacement, floatspeed, meltspeed)
        self.iceCubesThirdRoom += (cube5, )
        self.corn3 = cube5.model.getPos()

        cube6 = IceCube(
            LVector3(cube1.model.getX(),
                     cube1.model.getY() + scale * space, cube1.model.getZ()),
            scale, displacement, floatspeed, meltspeed)
        self.iceCubesThirdRoom += (cube6, )

        cube7 = IceCube(
            LVector3(cube6.model.getX(),
                     cube6.model.getY() + scale * space, cube6.model.getZ()),
            scale, displacement, floatspeed, meltspeed)
        self.iceCubesThirdRoom += (cube7, )
        self.corn4 = cube7.model.getPos()

        cube8 = IceCube(
            LVector3(cube7.model.getX() + scale * space, cube7.model.getY(),
                     cube7.model.getZ()), scale, displacement, floatspeed,
            meltspeed)
        self.iceCubesThirdRoom += (cube8, )

        safePlat3 = Prism(
            LVector3(plat.pos.x + plat.len + 50, plat.pos.y + plat.wid * 1.8,
                     plat.pos.z), 100, 150, 300, self.white, self.innerwalltex,
            'safePlat3')
        self.thirdRoomParts += (safePlat3, )

        safePlat4 = Prism(
            LVector3(safePlat3.pos.x, safePlat3.pos.y + safePlat3.wid * 1.35,
                     plat.pos.z), 100, 500, 300, self.white, self.innerwalltex,
            'safePlat3')
        self.thirdRoomParts += (safePlat4, )
Exemple #12
0
    def __init__(self, pos):
        self.parts = ()
        self.firstRoomParts = ()
        self.secondRoomParts = ()
        self.thirdRoomParts = ()
        self.iceCubesSecondRoom = ()
        self.iceCubesThirdRoom = ()
        self.bigCube = 0
        self.white = LVector4(1, 1, 1, 1)
        self.innerwalltex = loader.loadTexture("caverock.jpg")
        self.snowTex = loader.loadTexture("ground.jpg")

        #Creates an array of ice cube velocities for the cube spinning that will be exhibited in room three.
        self.iceCubeVel = ()

        cube1Vel = LVector2(1, 0)
        self.iceCubeVel += (cube1Vel, )

        cube2Vel = LVector2(1, 0)
        self.iceCubeVel += (cube2Vel, )

        cube3Vel = LVector2(0, 1)
        self.iceCubeVel += (cube3Vel, )

        cube4Vel = LVector2(0, 1)
        self.iceCubeVel += (cube4Vel, )

        cube5Vel = LVector2(-1, 0)
        self.iceCubeVel += (cube5Vel, )

        cube6Vel = LVector2(0, -1)
        self.iceCubeVel += (cube6Vel, )

        cube7Vel = LVector2(0, -1)
        self.iceCubeVel += (cube7Vel, )

        cube8Vel = LVector2(-1, 0)
        self.iceCubeVel += (cube8Vel, )

        self.corn1 = 0
        self.corn2 = 0
        self.corn3 = 0
        self.corn4 = 0

        ########
        #
        #   ENTRANCE OF CAVE
        #
        ########
        self.entrance = Prism(pos, 200, 500, 50, self.white, self.snowTex,
                              'entrance')
        self.parts += (self.entrance, )

        self.setFirstRoom()
        '''
        Add all parts of the first room of the cave into the cave part queue
        '''
        for p in self.firstRoomParts:
            self.parts += (p, )
        '''
        Add all parts of the second room of the cave into the cave part queue
        '''
        for p in self.secondRoomParts:
            self.parts += (p, )
        '''
        Add all parts of the third room of the cave into the cave part queue
        '''
        for p in self.thirdRoomParts:
            self.parts += (p, )
        '''
        Add all ice cubes of second room to the cave part queue
        '''
        for p in self.iceCubesSecondRoom:
            self.parts += (p, )
        '''
        Add all ice cubes of third room to the cave part queue
        '''
        for p in self.iceCubesThirdRoom:
            self.parts += (p, )

        self.parts += (self.bigCube, )
Exemple #13
0
    def setFirstRoom(self):
        distFloortoEnt = 500
        roofHeight = 300
        floor = Prism(
            LVector3(self.entrance.pos.x - distFloortoEnt,
                     self.entrance.pos.y + self.entrance.wid,
                     self.entrance.pos.z - 30),
            self.entrance.len + distFloortoEnt, 400, 50, self.white,
            self.innerwalltex, 'firstFloor')
        self.firstRoomParts += (floor, )

        #Ramps aren't ramps anymore, but I don't want to go through the trouble of changing variable names
        ramp_1 = Prism(
            LVector3(floor.pos.x + floor.len / 1.6, floor.pos.y,
                     floor.pos.z + 10), floor.len / 8, floor.wid, 10,
            self.white, self.innerwalltex, 'ramp_1')
        self.firstRoomParts += (ramp_1, )

        ramp_2 = Prism(
            LVector3(ramp_1.pos.x - ramp_1.len, ramp_1.pos.y,
                     floor.pos.z + ramp_1.dep * 1.5), ramp_1.len, ramp_1.wid,
            ramp_1.dep * 1.5, self.white, self.innerwalltex, 'ramp_2')
        self.firstRoomParts += (ramp_2, )
        ramp_3 = Prism(
            LVector3(ramp_2.pos.x - ramp_2.len, ramp_1.pos.y,
                     floor.pos.z + ramp_1.dep * 1.4), ramp_1.len * 1.5,
            ramp_1.wid, ramp_1.dep * 1.4, self.white, self.innerwalltex,
            'ramp_3')
        self.firstRoomParts += (ramp_3, )

        stalag_1 = Prism(
            LVector3(floor.pos.x + floor.len / 2, floor.pos.y + floor.wid / 2,
                     floor.pos.z + roofHeight), 30, 30, 120, self.white,
            self.innerwalltex, 'stalag_1')
        self.firstRoomParts += (stalag_1, )

        stalag_2 = Prism(
            LVector3(stalag_1.pos.x + stalag_1.wid, stalag_1.pos.y + 10,
                     stalag_1.pos.z), stalag_1.len - 10, stalag_1.wid - 10,
            stalag_1.dep / 2, self.white, self.innerwalltex, 'stalag_2')
        self.firstRoomParts += (stalag_2, )

        stalag_3 = Prism(
            LVector3(stalag_1.pos.x - stalag_2.wid, stalag_2.pos.y,
                     stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep,
            self.white, self.innerwalltex, 'stalag_3')
        self.firstRoomParts += (stalag_3, )

        stalag_4 = Prism(
            LVector3(stalag_1.pos.x + 10, stalag_1.pos.y - stalag_1.wid,
                     stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep,
            self.white, self.innerwalltex, 'stalag_4')
        self.firstRoomParts += (stalag_4, )

        stalag_5 = Prism(
            LVector3(stalag_3.pos.x, stalag_1.pos.y + stalag_2.wid,
                     stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep,
            self.white, self.innerwalltex, 'stalag_5')
        self.firstRoomParts += (stalag_5, )

        mite_1 = Prism(
            LVector3(ramp_1.pos.x - ramp_1.wid / 2, floor.pos.y,
                     floor.pos.z + roofHeight / 2), ramp_2.len / 2, 45,
            roofHeight / 2, self.white, self.innerwalltex, 'mite_1')
        self.firstRoomParts += (mite_1, )

        mite_2 = Prism(
            LVector3(mite_1.pos.x + mite_1.wid, mite_1.pos.y,
                     floor.pos.z + roofHeight / 1.3), mite_1.len,
            mite_1.wid + 10, roofHeight / 1.3, self.white, self.innerwalltex,
            'mite_2')
        self.firstRoomParts += (mite_2, )

        rod_1 = Prism(
            LVector3(floor.pos.x + floor.wid / 10, floor.pos.y + floor.wid / 2,
                     floor.pos.z + roofHeight), 50, 50, roofHeight, self.white,
            self.innerwalltex, 'rod_1')
        self.firstRoomParts += (rod_1, )

        rightWall_1 = Prism(
            LVector3(floor.pos.x + floor.len - 10, floor.pos.y,
                     floor.pos.z + roofHeight), 10, floor.wid / 3, roofHeight,
            self.white, self.innerwalltex, 'rightWall_1')
        self.firstRoomParts += (rightWall_1, )

        rightWall_2 = Prism(
            LVector3(rightWall_1.pos.x, rightWall_1.pos.y + rightWall_1.wid,
                     floor.pos.z + roofHeight / 1.5), rightWall_1.len,
            floor.wid / 5, roofHeight / 1.5, self.white, self.innerwalltex,
            'rightWall_2')
        self.firstRoomParts += (rightWall_2, )

        rightWall_3 = Prism(
            LVector3(rightWall_2.pos.x - 20,
                     rightWall_2.pos.y + rightWall_2.wid,
                     floor.pos.z + roofHeight / 1.9), rightWall_1.len + 20,
            floor.wid / 7, roofHeight / 1.9, self.white, self.innerwalltex,
            'rightWall_3')
        self.firstRoomParts += (rightWall_3, )

        rightWall_4 = Prism(
            LVector3(
                rightWall_1.pos.x, floor.pos.y +
                (rightWall_1.wid + rightWall_2.wid + rightWall_3.wid),
                floor.pos.z + roofHeight), rightWall_2.len,
            floor.wid - (rightWall_1.wid + rightWall_2.wid + rightWall_3.wid),
            roofHeight, self.white, self.innerwalltex, 'rightWall_4')
        self.firstRoomParts += (rightWall_4, )

        backWall = Prism(
            LVector3(floor.pos.x, floor.pos.y + floor.wid,
                     floor.pos.z + rightWall_1.dep), floor.len,
            rightWall_1.wid, rightWall_1.dep, self.white, self.innerwalltex,
            "backwall")
        self.firstRoomParts += (backWall, )

        #Generate second room
        self.setSecondRoom(floor, roofHeight)
Exemple #14
0
 def __init__(self, pos):
     self.bigCube = 0
     self.white = LVector4(1, 1, 1, 1)
     self.snowTex = loader.loadTexture("ground.jpg")
     self.floor = Prism(pos, 500, 500, 50, self.white, self.snowTex,
                        'endFloor')