def __init__(self):
        ShowBase.__init__(self)

        self.iceCube = IceCube(LVector3(0,100,0), 3, 20, 10, .15)
        self.iceCube.generate(render)
        #base.camera.lookAt(self.iceCube.model)

        taskMgr.add(self.update, 'update')
class Main(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)
        self.cube = IceCube(LVector3(0, 0, 0), 2, 5, 1)
        self.cube.generate(render)

        taskMgr.add(self.update, "update")

    def update(self, task):
        self.cube.bob()

        return task.cont
Example #3
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)
    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)
Example #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, )
Example #6
0
    def platformsRoom2(self, floor, disp):
        space = 10
        scale = 8
        displacement = 50
        floatspeed = 1
        cube1 = IceCube(
            LVector3(floor.pos.x - disp / 3, floor.pos.y + floor.wid / 2,
                     floor.pos.z - floor.dep * 2), scale, displacement,
            floatspeed)
        self.iceCubes += (cube1, )

        yPos = cube1.model.getY()
        i = 0
        while i < 26:
            self.iceCubes += (IceCube(
                LVector3(cube1.model.getX(), yPos + scale * space,
                         cube1.model.getZ()), scale, displacement,
                floatspeed), )
            yPos += scale * space
            i += 1
Example #7
0
    def platformsRoom2(self, floor, disp):
        space = 13
        scale = 5
        displacement = 0
        floatspeed = 20
        cube1 = IceCube(
            LVector3(floor.pos.x - disp / 5, floor.pos.y + floor.wid / 2,
                     floor.pos.z - floor.dep / 2), scale, displacement,
            floatspeed, 0)
        self.iceCubesSecondRoom += (cube1, )

        yPos = cube1.model.getY()
        i = 0

        #Place a path of 26 cubes down the hallway
        while i < 18:
            self.iceCubesSecondRoom += (IceCube(
                LVector3(cube1.model.getX(), yPos + scale * space,
                         cube1.model.getZ()), scale, displacement, floatspeed,
                0), )
            yPos += scale * space
            i += 1
Example #8
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)
class Main(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)

        self.iceCube = IceCube(LVector3(0,100,0), 3, 20, 10, .15)
        self.iceCube.generate(render)
        #base.camera.lookAt(self.iceCube.model)

        taskMgr.add(self.update, 'update')

    def update(self, task):
        self.iceCube.bob(globalClock.getDt())
                                               
        if not self.iceCube.melted:
            self.iceCube.melt(globalClock.getDt())

        return task.cont
Example #10
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, )
    def __init__(self):
        ShowBase.__init__(self)
        self.cube = IceCube(LVector3(0, 0, 0), 2, 5, 1)
        self.cube.generate(render)

        taskMgr.add(self.update, "update")