Ejemplo n.º 1
0
    def __init__(self, width=1024, height=768):
        Panda3DWorld.__init__(self, width=width, height=height)
        self.cam.setPos(0, -58, 30)
        self.cam.setHpr(0, -30, 0)
        self.win.setClearColorActive(True)
        self.win.setClearColor(VBase4(0, 0, 0, 1))
        self.cam.node().getDisplayRegion(0).setSort(20)
        #Create a panda
        self.panda = loader.loadModel("panda")
        self.panda.reparentTo(render)
        self.panda.setPos(0, 0, 0)

        self.grid_maker = Env_Grid_Maker()
        self.grid = self.grid_maker.create()
        self.grid.reparentTo(render)
        self.grid.setLightOff()  # THE GRID SHOULD N OT BE LIT

        # Now create some lights to apply to everything in the scene.

        # Create Ambient Light
        ambientLight = AmbientLight('ambientLight')
        ambientLight.setColor(Vec4(0.1, 0.1, 0.1, 1))
        ambientLightNP = render.attachNewNode(ambientLight)
        render.setLight(ambientLightNP)

        # Directional light 01
        directionalLight = DirectionalLight("directionalLight")
        directionalLight.setColor(Vec4(0.8, 0.1, 0.1, 1))
        directionalLightNP = render.attachNewNode(directionalLight)
        # This light is facing backwards, towards the camera.
        directionalLightNP.setHpr(180, -20, 0)
        directionalLightNP.setPos(10, -100, 10)
        render.setLight(directionalLightNP)

        # If we did not call setLightOff() first, the green light would add to
        # the total set of lights on this object.  Since we do call
        # setLightOff(), we are turning off all the other lights on this
        # object first, and then turning on only the green light.
        self.panda.setLightOff()
        self.jump_up = self.panda.posInterval(1.0,
                                              Point3(0, 0, 5),
                                              blendType="easeOut")
        self.jump_down = self.panda.posInterval(1.0,
                                                Point3(0, 0, 0),
                                                blendType="easeIn")
        self.jump_seq = Sequence(self.jump_up, self.jump_down)

        self.jump_up2 = self.panda.posInterval(1.0, Point3(10, 0, 15))
        self.jump_down2 = self.panda.posInterval(1.0, Point3(0, 0, 0))
        self.roll_left = self.panda.hprInterval(1.0, Point3(0, 0, 180))
        self.roll_right = self.panda.hprInterval(1.0, Point3(0, 0, 0))
        self.roll_seq = Sequence(Parallel(self.jump_up2, self.roll_left),
                                 Parallel(self.jump_down2, self.roll_right))
Ejemplo n.º 2
0
    def __init__(self,
                 camera_mode: CameraMode = CameraMode.SPHERICAL,
                 debug: bool = False):
        """
        Parameters
        ----------
        camera_mode : CameraMode
            Initial CameraMode.
        debug : bool
            Debug flag.
        """
        Panda3DWorld.__init__(self)

        self._is_debug: bool = debug

        # Children
        self._model_node_manager: Optional[ModelManager] = None
        self._build_area_node: Optional[NodePath] = None

        # Light
        self._dir_light_top_np: Optional[DirectionalLight] = None
        self._dir_light_bot_np: Optional[DirectionalLight] = None
        self._ambient_light_np: Optional[AmbientLight] = None
        self._init_lights()

        # Controls
        self.disableMouse()  # Disable default camera mouse controls

        # Background color
        self.buff.setClearColorActive(True)
        self.buff.setClearColor(self._BACKGROUND_COLOR)

        # Camera
        self._camera_mode: CameraMode = camera_mode
        self._camera_controller: Optional[CameraController] = None
        self._focal_point: LVector3d = self._FOCAL_POINT_DEFAULT

        # Tasks
        self._setup_tasks()

        # Misc
        self.disableAllAudio()
        self.disableParticles()

        self._frame_buffer_size: Optional[LVecBase2i] = None

        if self._is_debug:
            self.messenger.toggleVerbose()
Ejemplo n.º 3
0
    def __init__(self, width=1024, height=768):
        Panda3DWorld.__init__(self, width=width, height=height)
        self.cam.setPos(0, -58, 6)
        self.win.setClearColorActive(True)
        self.win.setClearColor(VBase4(0.5, 0, 0, 1))
        self.cam.node().getDisplayRegion(0).setSort(20)
        #Create a panda
        self.panda = loader.loadModel("panda")
        self.panda.reparentTo(render)
        self.panda.setPos(0, 0, 0)

        #accept few keys
        self.accept("arrow_left", self.left)
        self.accept("arrow_right", self.right)
        self.accept("arrow_up", self.up)
        self.accept("arrow_down", self.down)
Ejemplo n.º 4
0
    def __init__(self, width=1024, height=768):
        Panda3DWorld.__init__(self, width=width, height=height)
        self.cam.setPos(0, -58, 6)
        self.win.setClearColorActive(True)
        self.win.setClearColor(VBase4(0.5, 0, 0, 1))
        self.cam.node().getDisplayRegion(0).setSort(20)
        #Create a panda
        self.panda = loader.loadModel("panda")
        self.panda.reparentTo(render)
        self.panda.setPos(0, 0, 0)

        #accept few mouse events
        self.accept('mouse1', self.mousePressEventLeft)
        self.accept("mouse2", self.wheelEvent)
        self.accept("mouse1-up", self.mouseReleaseEventLeft)
        self.accept("mouse-move", self.mouseMoveEvent)
Ejemplo n.º 5
0
    def __init__(self, model3D):
        self.model3D = model3D

        Panda3DWorld.__init__(self)
        self.disable_mouse()

        self.camera_controller_ = CameraController(self, 600, math.radians(45),
                                                   math.radians(60))

        self.set_collisions_handlers()
        self.set_light()
        self.draw_model(self.model3D.filename)
        #self.draw_grid()

        self.setFrameRateMeter(True)
        self.setSceneGraphAnalyzerMeter(True)

        self.model3D.set_sgam(self.get_scene_graph_analyzer_meter())