Beispiel #1
0
    def __init__(self):
        ShowBase.__init__(self)
        self.setBackgroundColor(0.2, 0.2, 0.2)
        self.accept("escape", self.taskMgr.stop)
        #self.accept("mouse1", self.onClick)
        #self.accept("mouse2", self.onClick2)
        self.globalClock = ClockObject()

        self.addLight()

        self.liner = LineDrawer(self)

        self.taskMgr.add(self.update, "update")
Beispiel #2
0
 def __init__(self, msg=""):
     self.__msg = msg
     self.__clock = ClockObject()
Beispiel #3
0
def clockobj():
    return ClockObject()
Beispiel #4
0
    def __init__(self):
        ShowBase.__init__(self)
        """ SETUP CONFIG VARS  """
        # self.render.setShaderAuto()
        self.globalClock = ClockObject().getGlobalClock()
        self.bullet_world = BulletWorld()
        self.bullet_world.setGravity((0, 0, -9.81))

        """ PLAYER SETUP """
        # player camera
        self.ref_node = self.render.attachNewNode('camparent')

        self.debugNP = self.render.attachNewNode(BulletDebugNode('Debug'))
        self.debugNP.show()

        self.player_body_geom = make_cube_geom(geom_color=(1, 0, 0, 1))
        player_body_geom_node = GeomNode('player')
        player_body_geom_node.addGeom(self.player_body_geom)
        self.player_body_geom_np = self.render.attachNewNode(player_body_geom_node)

        # Box
        shape = BulletBoxShape(Vec3(0.5, 0.5, 0.5))


        self.box_np = self.render.attachNewNode(BulletRigidBodyNode('Box'))
        self.box_np.node().setMass(1.0)
        self.box_np.node().addShape(shape)
        self.box_np.node().setDeactivationEnabled(False)
        self.player_body_geom_np.reparentTo(self.box_np)
        self.box_np.setPos(10, 10, 10)
        self.box_np.setCollideMask(BitMask32.allOn())
        self.bullet_world.attachRigidBody(self.box_np.node())


        # TODO: move player stuff to a new class
        # TODO: add cross hairs on player hud
        self.player_ray_end = NodePath('player-ray')
        self.player_ray_end.reparentTo(self.render)
        self.player_ray_end.reparentTo(self.ref_node)
        self.player_ray_end.setY(+10)  # put this in front of the player
        self.ref_node.lookAt(self.player_ray_end)

        """ SETUP VARS AND USE UTIL CLASSES """

        self.map_scale = 10
        self.map_size = 100
        self.camLens.setFov(90)
        total_size = 32 * 8

        PlayerMovement(self)
        World(self, n_grids=32)

        # self.ref_node.reparentTo(self.box_np)


        """ SKY BOX SETUP """

        skybox = GeomNode('skybox')
        skybox.addGeom(make_cube_geom(pos=(0, 0, 0), geom_color=(0.2, 0.2, 0.7, 1)))
        skybox_np = self.render.attachNewNode(skybox)
        skybox_np.reparentTo(self.ref_node)
        skybox_np.setPos((0, 1200, 0))
        skybox_np.setScale(1200)

        """ ADD LIGHTS """

        # ambient light
        ambientLight = AmbientLight('ambientLight')
        ambientLight.setColor((0.2, 0.2, 0.2, 1))
        ambientLightNP = self.render.attachNewNode(ambientLight)
        self.render.setLight(ambientLightNP)

        # a geom to represent the sun
        sun_geom_node = GeomNode('sun')
        sun_geom_node.addGeom(make_cube_geom(geom_color=(0.5, 0.5, 0.3, 1)))
        sun_geom_node_path = self.render.attachNewNode(sun_geom_node)
        sun_geom_node_path.setScale(10)

        # sun
        sun = PointLight('sun')
        sun.setColor((0.4, 0.3, 0.27, 1))
        sun.setAttenuation((0.1, 0, 0))
        sun_np = self.render.attachNewNode(sun)
        sun_geom_node_path.reparentTo(sun_np)
        self.render.setLight(sun_np)
        sun_np.setPos(total_size / 2, total_size / 2, 200)

        """ SETUP FOR ONSCREEN TEXT """

        # TODO: add chunk coords to display
        self.text = OnscreenText(text='fps', pos=(-1, -0.95), fg=(0, 1, 0, 1), align=TextNode.ALeft, scale=0.1)
        self.location_text = OnscreenText(text='location', pos=(-1, 0.8), fg=(0, 1, 0, 1), align=TextNode.ALeft,
                                          scale=0.1)
        self.previous_time = time.time()
        self.taskMgr.add(self.update_text, 'fps')
        self.taskMgr.add(self.update, 'physics')