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")
def __init__(self, msg=""): self.__msg = msg self.__clock = ClockObject()
def clockobj(): return ClockObject()
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')