Beispiel #1
0
  def activate(self, position = Vec3(5.0, 5.0, 5.0)):
    print "Activating FreeLook Camera"
    # No moar cursor!
    wp = WindowProperties()
    wp.setCursorHidden(True)
    # does not exist panda 1.3.2 / but is reqired for osx-mouse movement
    try: wp.setMouseMode(WindowProperties.MAbsolute)
    except: pass
    base.win.requestProperties(wp)

    # initialize camera
    base.camLens.setFov(70) # field of view
    base.camera.reparentTo(base.render) # attach it to the render
    ## set position
    base.camera.setPos(position)
    base.camera.setR(0)

    # initialize mouse controls
    ## walking and stopping if input is lost
    self.accept("s" , self.set_walk, [self.BACK])
    self.accept("s-up" , self.set_walk, [self.STOP])
    self.accept("w" , self.set_walk, [self.FORWARD])
    self.accept("w-up" , self.set_walk, [self.STOP])
    self.accept("d" , self.set_strafe, [self.RIGHT])
    self.accept("d-up" , self.set_strafe, [self.STOP])
    self.accept("a" , self.set_strafe, [self.LEFT])
    self.accept("a-up" , self.set_strafe, [self.STOP])

    # initialize camera task
    base.taskMgr.add(self.update, "update_camera_task")
Beispiel #2
0
    def buildInGameMenu(self):

        props = WindowProperties()
        props.setCursorHidden(False) 
        base.win.requestProperties(props)

        resume_button = DirectButton(text = "Resume", scale = .1, command = (lambda: self.switchGameMode(PLAY)),
                                    rolloverSound=None)

        main_menu_button = DirectButton(text = "Main Menu", scale = .1, command = self.b,
                                    rolloverSound=None)

        options_button = DirectButton(text = "Options", scale = .1, command = self.b,
                                    rolloverSound=None)

        exit_button = DirectButton(text = "Exit", scale = .1, command = exit,
                                    rolloverSound=None)

        BUTTON_SPACING = .2
        BUTTON_HEIGHT = resume_button.getSy()

        button_positions = self.evenButtonPositions(BUTTON_SPACING, BUTTON_HEIGHT, 4)

        resume_button.setPos(Vec3(0, 0, button_positions[0]))
        main_menu_button.setPos(Vec3(0, 0, button_positions[1]))
        options_button.setPos(Vec3(0, 0, button_positions[2]))
        exit_button.setPos(Vec3(0, 0, button_positions[3]))

        self.gui_elements.append(resume_button)
        self.gui_elements.append(main_menu_button)
        self.gui_elements.append(options_button)
        self.gui_elements.append(exit_button)
    def __init__(self, useJOD=None):
        """
        @keyword useJOD: connected to actual drumpads and spinners to read from (default: read from config.prc)
        @type useJOD: bool
        """

        self.configPath = Filename("/c/jamoconfig.txt")
        self.logPath = Filename("/c/jamoconfig.log")
        self.clearConfig()
        self.simulate()
        self.log = sys.stdout
        self.configMissing = 0
        self.hardwareChanged = 0

        if (useJOD==None):
            useJOD = base.config.GetBool("want-jamodrum", True)

        self.useJOD = useJOD
        if (useJOD):
            self.setLog(self.logPath)
            self.devindices = range(1,base.win.getNumInputDevices())
            self.readConfigFile(self.configPath)
            self.prepareDevices()
            props = WindowProperties()
            props.setCursorHidden(1)
	    if (sys.platform == "win32"):
                props.setZOrder(WindowProperties.ZTop)
            base.win.requestProperties(props)
            self.setLog(None)
def toggleMouseLook():
    global _MOUSELOOK
    _MOUSELOOK = not _MOUSELOOK
    props = WindowProperties()
    props.setCursorHidden(_MOUSELOOK)
    base.win.requestProperties(props)
    return _MOUSELOOK
Beispiel #5
0
 def toggle_mouse(self, capture=True):
     win_props = WindowProperties()
     win_props.setCursorHidden(capture)
     base.win.requestProperties(win_props)
     self.capture_mouse = capture
     win_x, win_y = base.win.getXSize(), base.win.getYSize()
     base.win.movePointer(0, win_x // 2, win_y // 2)
Beispiel #6
0
def toggleMouseLook():
	global _MOUSELOOK
	_MOUSELOOK = not _MOUSELOOK
	props = WindowProperties()
	props.setCursorHidden(_MOUSELOOK)
	base.win.requestProperties(props)
	return _MOUSELOOK
Beispiel #7
0
    def buildMainMenu(self):

        props = WindowProperties()
        props.setCursorHidden(False) 
        base.win.requestProperties(props)

        start_game_button = DirectButton(text = "Start", scale = .1,
                            command = self.b)

        select_level_button = DirectButton(text = "Select Level", scale = .1,
                            command = self.b)

        game_options_button = DirectButton(text = "Options", scale = .1,
                            command = self.b)

        exit_button = DirectButton(text = "Exit", scale = .1,
                            command = exit)

        BUTTON_SPACING = .2
        BUTTON_HEIGHT = start_game_button.getSy()

        button_positions = self.evenButtonPositions(BUTTON_SPACING, BUTTON_HEIGHT)

        start_game_button.setPos(Vec3(0, 0, button_positions[0]))
        select_level_button.setPos(Vec3(0, 0, button_positions[1]))
        game_options_button.setPos(Vec3(0, 0, button_positions[2]))
        exit_button.setPos(Vec3(0, 0, button_positions[3]))

        self.gui_elements.append(start_game_button)
        self.gui_elements.append(select_level_button)
        self.gui_elements.append(game_options_button)
        self.gui_elements.append(exit_button)
Beispiel #8
0
    def __init__(self, useJOD=None):
        """
        @keyword useJOD: connected to actual drumpads and spinners to read from (default: read from config.prc)
        @type useJOD: bool
        """

        self.configPath = Filename("/c/jamoconfig.txt")
        self.logPath = Filename("/c/jamoconfig.log")
        self.clearConfig()
        self.simulate()
        self.log = sys.stdout
        self.configMissing = 0
        self.hardwareChanged = 0

        if (useJOD == None):
            useJOD = base.config.GetBool("want-jamodrum", True)

        self.useJOD = useJOD
        if (useJOD):
            self.setLog(self.logPath)
            self.devindices = range(1, base.win.getNumInputDevices())
            self.readConfigFile(self.configPath)
            self.prepareDevices()
            props = WindowProperties()
            props.setCursorHidden(1)
            if (sys.platform == "win32"):
                props.setZOrder(WindowProperties.ZTop)
            base.win.requestProperties(props)
            self.setLog(None)
Beispiel #9
0
def hide_cursor():
    """set the Cursor invisible"""
    props = WindowProperties()
    props.setCursorHidden(True)
    # somehow the window gets undecorated after hiding the cursor
    # so we reset it here to the value we need
    #props.setUndecorated(settings.fullscreen)
    base.win.requestProperties(props)
def show_cursor():
    props = WindowProperties()
    props.setCursorHidden(False)
    # set the filename to the mouse cursor
    # at the time the realization is valid for Windows only
    win = "assets/gui/Cursor.cur"
    props.setCursorFilename(win)
    base.win.requestProperties(props)
Beispiel #11
0
    def disable_rot(self):
        if self.free_look_task is not None:
            taskMgr.remove(self.free_look_task)

        # show the mouse cursor again.
        props = WindowProperties()
        props.setCursorHidden(False)
        base.win.requestProperties(props)
Beispiel #12
0
def hide_cursor():
    """set the Cursor invisible"""
    props = WindowProperties()
    props.setCursorHidden(True)
    # somehow the window gets undecorated after hiding the cursor
    # so we reset it here to the value we need
    #props.setUndecorated(settings.fullscreen)
    base.win.requestProperties(props)
Beispiel #13
0
 def _init_graphics(self):
     base.disableMouse()
     props = WindowProperties()
     props.setCursorHidden(True)
     base.win.requestProperties(props)
     base.setFrameRateMeter(True)
     render.setShaderAuto()
     render.setAntialias(AntialiasAttrib.MAuto)
 def __exitWheel(self, event):
     # Window properties
     props = WindowProperties()
     props.setCursorHidden(False)
     base.win.requestProperties(props)
     
     # Stop tracking our mouse pointer
     taskMgr.remove('MATColorWheel-mouse')
Beispiel #15
0
    def __exitWheel(self, event):
        # Window properties
        props = WindowProperties()
        props.setCursorHidden(False)
        base.win.requestProperties(props)

        # Stop tracking our mouse pointer
        taskMgr.remove('MATColorWheel-mouse')
Beispiel #16
0
    def __init__(self):
        ShowBase.__init__(self)

        #Disable mouse controls
        self.disableMouse()

        #Load enviromnment model
        self.scene = self.loader.loadModel("models/environment")

        #Reparent model top renderer
        self.scene.reparentTo(self.render)

        #Apply scale and position transforms on the model
        self.scene.setScale(0.25, 0.25, 0.25)
        self.scene.setPos(-8, 42, 0)

        #Add task spinCameraTask procedure to task manager
        self.taskMgr.add(self.setCameraTask, "setCameraTask")
        self.taskMgr.add(self.keyInput, "keyInput")
        self.taskMgr.add(self.moveCharacter, "movecharacter")
        self.taskMgr.add(self.mouseInput, "mouseInput")
        self.taskMgr.add(self.lookCharacter, "lookCharacter")



        #Positions of character/camera
        self.xpos = 0
        self.ypos = 0
        self.zpos = 10

        self.angleH = 0
        self.angleP = 0

        self.xInterval = 0.0
        self.yInterval = 0.0

        #Speed at which the character/camera moves
        self.movementInterval = 1
        
        self.lookInterval = 2

        #Dictionary of key states
        self.keys = {"w" : False,
                     "s" : False,
                     "a" : False,
                     "d" : False,
                     "arrow_right" : False,
                     "arrow_left": False}

        #Configuring cursor settings
        wp = WindowProperties()
        wp.setMouseMode(WindowProperties.MRelative)
        wp.setCursorHidden(True)
        self.win.requestProperties(wp)

        self.mw = self.mouseWatcherNode
 def togglePause(self):
     print ("pause pressed")
     if MyApp.paused:
         self.makeMouseRelative()
         MyApp.paused = False
     else:
         props = WindowProperties() # initiates window node
         props.setCursorHidden(False) # cursor shows
         props.setMouseMode(WindowProperties.M_absolute) # cursor moves
         self.win.requestProperties(props) # window accepts changes
         MyApp.paused = True
Beispiel #18
0
def setPlanar():
    for citizen in citizenIndex:
        location = citizen.getLocation()
        citizen.glide(location)
    global mode
    mode = 1
    LerpPosInterval(base.camera, 1, VBase3(0, 0, 75), fluid = 1).start()
    LerpHprInterval(base.camera, 1, VBase3(0, -90, 0), fluid = 1).start()
    #base.camera.setPosHpr(0, 0, 75, 0, -90, 0)
    props = WindowProperties()
    props.setCursorHidden(False)
    base.win.requestProperties(props)
Beispiel #19
0
def show_cursor():
    """set the Cursor visible again"""
    props = WindowProperties()
    props.setCursorHidden(False)
    # set the filename to the mouse cursor
    x11 = "Cursor.x11"
    win = "Cursor.ico"
    if sys.platform.startswith("linux"):
        props.setCursorFilename(x11)
    else:
        props.setCursorFilename(win)
    base.win.requestProperties(props)
Beispiel #20
0
 def beginGame(self):
    self.textObject.destroy()
    self.imageObject.destroy()
    self.b.destroy()
    props = WindowProperties()
    props.setCursorHidden(True)
    base.win.requestProperties(props)
    self.taskMgr.add(self.moveForward, "MoveForward")
    self.accept("mouse1",self.jump)
    self.textScore = OnscreenText(text = '\1red\1\1slant\1Score : 0', pos = (-0.8, 0.8), scale = 0.1)
    self.textTimer = OnscreenText(text = '\1red\1\1slant\1Time Left : 2:00', pos = (-0.8, 0.7), scale = 0.1)
    print 'GameBegin'
Beispiel #21
0
def show_cursor():
    """set the Cursor visible again"""
    props = WindowProperties()
    props.setCursorHidden(False)
    # set the filename to the mouse cursor
    x11 = "Cursor.x11"
    win = "Cursor.ico"
    if sys.platform.startswith("linux"):
        props.setCursorFilename(x11)
    else:
        props.setCursorFilename(win)
    base.win.requestProperties(props)
Beispiel #22
0
 def finish(self):
   """ Invoke this before this class object will be off duty """
   self.ignoreAll()
   if self.mouseTask:
     taskMgr.remove(self.mouseTask)
     self.mouseTask=None
   if self.pyga_joytask:
     taskMgr.remove(self.pyga_joytask)
     self.pyga_joytask=None
   props = WindowProperties()
   props.setCursorHidden(False)
   props.setMouseMode(WindowProperties.MAbsolute)
   base.win.requestProperties(props)
Beispiel #23
0
def show_cursor():
    """set the Cursor visible again"""
    props = WindowProperties()
    props.setCursorHidden(False)
    # set the filename to the mouse cursor
    #x11 = os.path.join("data", "Cursor.x11")
    #win = os.path.join("data", "Cursor.ico")
    #if sys.platform.startswith("linux"):
    #    props.setCursorFilename(x11)
    #else:
    #    props.setCursorFilename(win)
    #props.setUndecorated(settings.fullscreen)
    base.win.requestProperties(props)
Beispiel #24
0
 def start_map(self):
     try:
         self.r_region.setActive(0)
         self.ih_node.detach_node()
     except:
         # probably self.r_region isn't set because
         # we never loaded it (map arg on cmd line)
         pass
     self.lp = LocalPlayer(self.map, self.showbase)
     taskMgr.add(self.map.world.update, 'worldUpdateTask')
     props = WindowProperties()
     props.setCursorHidden(True)
     self.win.requestProperties(props)
     print self.render.analyze()
Beispiel #25
0
 def start_map(self):
     try:
         self.r_region.setActive(0)
         self.ih_node.detach_node()
     except:
         # probably self.r_region isn't set because
         # we never loaded it (map arg on cmd line)
         pass
     self.lp = LocalPlayer(self.map, self.showbase)
     taskMgr.add(self.map.world.update, 'worldUpdateTask')
     props = WindowProperties()
     props.setCursorHidden(True)
     self.win.requestProperties(props)
     print self.render.analyze()
Beispiel #26
0
def setCubic():
    for citizen in citizenIndex:
        color = citizen.getColor()
        position = VBase3((color[0]-0.5)*50, (color[1]-0.5)*50, (color[2]-0.5)*50)
        citizen.glide(position)
    global mode
    mode = 4
    #base.camera.setPos(VBase3(0, -50, 0))
    LerpPosInterval(base.camera, 1, VBase3(0, -100, 0), fluid = 1).start()
    LerpHprInterval(base.camera, 1, VBase3(0, 0, 0), fluid = 1).start()
    #base.camera.lookAt((0, 0, 0))
    props = WindowProperties()
    props.setCursorHidden(True)
    base.win.requestProperties(props)
Beispiel #27
0
def show_cursor():
    """set the Cursor visible again"""
    props = WindowProperties()
    props.setCursorHidden(False)
    # set the filename to the mouse cursor
    cursors = ["cursorRed", "cursorBlue", "cursorViolet", "cursorGreen"]
    cursor = random.choice(cursors)
    x11 = "cursors/{}.x11".format(cursor)
    win = "cursors/{}.ico".format(cursor)
    if sys.platform.startswith("linux"):
        props.setCursorFilename(x11)
    else:
        props.setCursorFilename(win)
    base.win.requestProperties(props)
Beispiel #28
0
    def enable_rot(self):
        # get the current mouse pos.
        self.mouse_x = base.mouseWatcherNode.getMouseX()
        self.mouse_y = base.mouseWatcherNode.getMouseY()

        #print 'mouse: enabling freelook.'
        self.mouse_freefloat_enabled = True
        self.prev_time = 0
        self.speed = 10

        props = WindowProperties()
        props.setCursorHidden(True)
        #props.setMouseMode(WindowProperties.MRelative)
        base.win.requestProperties(props)
        self.free_look_task = base.taskMgr.add(self.mouse_rot_coordinate_task,
                                               'freeLook')
Beispiel #29
0
  def set_mouse_read(self, readmouse, activate):
    if self.mouseTask:
      taskMgr.remove(self.mouseTask)
      self.mouseTask=None

    if activate:
      if not self.readmouse_binds:
        for xy in ['mouse-x', 'mouse-y']:
          self.readmouse_binds[xy]=readmouse.get(xy, self._foo)
      taskName = "_esnptmo-%s" % id(self)
      self.mouseTask = taskMgr.add(self._read_mouse, taskName, sort=40)

    props = WindowProperties()
    props.setCursorHidden(activate)
    props.setMouseMode(
      [WindowProperties.MAbsolute, WindowProperties.MRelative][activate])
    base.win.requestProperties(props)
Beispiel #30
0
 def disable( self ):
   ''' disable first person camera rotation of mouse and free/show the mouse
   '''
   self.rotationSpeed = 0
   # disable the mouse rotation task
   taskMgr.remove('cameraRotationTask')
   
   # show mouse cursor
   wp = WindowProperties()
   wp.setCursorHidden(False)
   # does not exist panda 1.3.2 / but is reqired for osx-mouse movement
   try: wp.setMouseMode(WindowProperties.MAbsolute)
   except: pass
   base.win.requestProperties(wp)
   
   # remove the cross from the window
   self.aimingCross.detachNode()
   
   self.enabled = False
    def __wheelTask(self, task):
        if base.mouseWatcherNode.hasMouse():
            x=base.mouseWatcherNode.getMouseX()
            y=base.mouseWatcherNode.getMouseY()
        else:
            return task.done

        # Centre of the wheel
        center_x = self.wheel.getX(render2d)
        center_y = self.wheel.getZ(render2d)

        # Window properties
        props = WindowProperties()
        
        # Are we inside the wheel?
        dist = math.sqrt(((center_x - x) ** 2) + ((center_y - y) ** 2))
        radius = render2d.getRelativePoint(self.wheel, (
                self.wheel.getX() + (self.wheel.getWidth() / 2.0),
                0,
                self.wheel.getZ() + (self.wheel.getHeight() / 2.0)
            )
        )

        if dist < radius[2]:
            if self.buttonDown:
                props.setCursorHidden(True)

                # Get the hue, saturation and value.
                hue = math.degrees(math.atan2(center_x - x, center_y - y))
                sat = (dist / 0.23) * 100

                # We want hue as a direction 0-360
                if hue < 0:
                    hue += 360

                # Set our properties
                self.setHsv(hue, sat, self.raw_hsv[2])
            else:
                props.setCursorHidden(False)
                
        # Continue the task!
        base.win.requestProperties(props)
        return task.cont
Beispiel #32
0
 def enable( self ):
   ''' enable first person camera rotation by mouse and bind/hide the mouse
   '''
   # the mouse is not centered
   self.mouseCentered = False
   # enable the mouse rotation task
   taskMgr.add(self.rotationTask, 'cameraRotationTask')
   
   # hide mouse cursor
   wp = WindowProperties()
   wp.setCursorHidden(True)
   # does not exist panda 1.3.2 / but is reqired for osx-mouse movement
   try: wp.setMouseMode(WindowProperties.MRelative)
   except: pass
   base.win.requestProperties(wp)
   
   # add the cross to the window
   self.aimingCross.reparentTo( render2d )
   
   self.enabled = True
Beispiel #33
0
  def deactivate(self):
    print "Deactivating FreeLook Camera"
    # No moar cursor!
    wp = WindowProperties()
    wp.setCursorHidden(True)
    # does not exist panda 1.3.2 / but is reqired for osx-mouse movement
    try: wp.setMouseMode(WindowProperties.MAbsolute)
    except: pass
    base.win.requestProperties(wp)

    self.ignore("s")
    self.ignore("s-up")
    self.ignore("w")
    self.ignore("w-up")
    self.ignore("d")
    self.ignore("d-up")
    self.ignore("a")
    self.ignore("a-up")

    base.taskMgr.remove("update_camera_task")
Beispiel #34
0
	def stopOrbit(self): 
		# This function takes the camera out of orbiting mode. 

		self.orbiting = False 
		# Sets the orbiting variable to false to designate orbiting mode as off. 
		
		self.showbase.win.movePointer(0, int((self.storeX + 1.0) / 2 * self.showbase.win.getXSize()), int(self.showbase.win.getYSize() - ((self.storeY + 1.0) / 2 * self.showbase.win.getYSize())))
		# set to taken cursor values from startOrbit
		if self.showbase.mouseWatcherNode.hasMouse():
			# We're going to use the mouse, so we have to make sure it's in the game window. If it's not and we try to use it, we'll get 
			# a crash error.
			mpos = self.showbase.mouseWatcherNode.getMouse()
			self.mx = mpos.getX()
			self.my = mpos.getY()

		# Get windows properties
		props = WindowProperties()
		# Set Hide Cursor Property
		props.setCursorHidden(False)
		# Set properties
		self.showbase.win.requestProperties(props)
Beispiel #35
0
 def start_map(self):
     try:
         self.r_region.setActive(0)
         self.ih_node.detach_node()
     except:
         pass
     incarn = self.map.world.get_incarn()
     walker_color_dict = {
         "barrel_color": [.7,.7,.7],
         "visor_color": [2.0/255, 94.0/255, 115.0/255],
         "body_primary_color": [3.0/255, 127.0/255, 140.0/255],
         "body_secondary_color": [217.0/255, 213.0/255, 154.0/255]
     }
     self.walker = self.map.world.attach(Walker(incarn, colordict=walker_color_dict, player=True))
     taskMgr.add(self.move, 'move')
     taskMgr.add(self.map.world.update, 'worldUpdateTask')
     self.setup_input()
     props = WindowProperties()
     props.setCursorHidden(True)
     self.win.requestProperties(props)
     print self.render.analyze()
Beispiel #36
0
    def __wheelTask(self, task):
        if base.mouseWatcherNode.hasMouse():
            x = base.mouseWatcherNode.getMouseX()
            y = base.mouseWatcherNode.getMouseY()
        else:
            return task.done

        # Centre of the wheel
        center_x = self.wheel.getX(render2d)
        center_y = self.wheel.getZ(render2d)

        # Window properties
        props = WindowProperties()

        # Are we inside the wheel?
        dist = math.sqrt(((center_x - x)**2) + ((center_y - y)**2))
        radius = render2d.getRelativePoint(
            self.wheel, (self.wheel.getX() + (self.wheel.getWidth() / 2.0), 0,
                         self.wheel.getZ() + (self.wheel.getHeight() / 2.0)))

        if dist < radius[2]:
            if self.buttonDown:
                props.setCursorHidden(True)

                # Get the hue, saturation and value.
                hue = math.degrees(math.atan2(center_x - x, center_y - y))
                sat = (dist / 0.23) * 100

                # We want hue as a direction 0-360
                if hue < 0:
                    hue += 360

                # Set our properties
                self.setHsv(hue, sat, self.raw_hsv[2])
            else:
                props.setCursorHidden(False)

        # Continue the task!
        base.win.requestProperties(props)
        return task.cont
Beispiel #37
0
    def __init__(self):
        super().__init__(self)

        # Initialize self variables
        self.environ = None
        self.bufsize = 2048
        self.addr = None
        self.my_socket = None
        self.z = None
        self.handmodel = None
        self.hand = None
        self.knuckle = None
        self.tknuckle = None
        self.thumb = None

        # This creates the on screen title that is in every tutorial
        self.title = OnscreenText(text="Gyro Glove",
                                  style=1, fg=(1, 1, 1, 1),
                                  pos=(0.87, -0.95), scale=.07)

        # Turn cursor on
        props = WindowProperties()
        props.setCursorHidden(False)
        self.win.requestProperties(props)

        self.setBackgroundColor(.6, .6, 1)  # Set the background color

        self.trackball.node().setPos(0, 30, -3)
        self.trackball.node().setHpr(-70, 0, 5)

        self.draw_grid()

        self.frameNav = self.draw_axis(self.render, [0, 0, 0])
        self.frameBody = self.draw_axis(self.render, [0, 0, 0])

        self.load_models()  # Load and position our models

        self.init_socket()
        self.taskMgr.add(self.roll_task, "rollTask")
Beispiel #38
0
    def enable(self):

        if not self.isEnabled():
            base.win.movePointer(0,
                                 base.win.getXSize() / 2,
                                 base.win.getYSize() / 2)
            self.enabled = True
            base_properties = base.win.getProperties()
            props = WindowProperties()
            props.setCursorHidden(True)
            base.win.requestProperties(props)

            self.prev_time = 0
            self.speed = 30

            self.x = base.mouseWatcherNode.getMouseX()
            self.y = base.mouseWatcherNode.getMouseY()

            # start the freefloat mouse task.
            self.free_look_task = base.taskMgr.add(self.mouseWatcherWindowMode,
                                                   'cubemode/flycamera/mouse')
            self.free_look_kb_task = base.taskMgr.add(
                self.kbTask, 'cubemode/flycamera/keyboard')

            # start the keyboard task
            for x in 'wsadf':
                self.keys_status[x] = False

            base.accept('w', self.eventW)
            base.accept('w-up', self.eventWup)
            base.accept('s', self.eventS)
            base.accept('s-up', self.eventSup)
            base.accept('a', self.eventA)
            base.accept('a-up', self.eventAup)
            base.accept('d', self.eventD)
            base.accept('d-up', self.eventDup)
            base.accept('escape', self.disable)
    def __init__(self):
        ShowBase.__init__(self)
        self.title = "Monkeys"
        self.setFrameRateMeter(True)

        # Disable the camera trackball controls.
        self.disableMouse()
        props = WindowProperties()
        props.setCursorHidden(True)
        props.setTitle("Stay Away From The Monkeys")
        props.setMouseMode(WindowProperties.M_relative)
        self.win.requestProperties(props)
        # set scene
        self.scene = self.loader.loadModel("models/skyTest.egg")
        self.scene.reparentTo(self.render)
        m = 37
        self.scene.setScale(m, m, m)
        self.scene.setPos(0, 0, -5)
        # set camera
        self.camera.setPos(0, 0, 1)
        self.camera.setHpr(0, 0, 0)
        self.cameraSpeed = (0, 0, 0)
        self.maxSpeed = 0.09
        self.lastKeyPressed = ""
        self.blockList = []
        self.mobMax = 0
        self.player = Player(self.camera)
        self.loadModel()
        self.createBars()
        self.die = False
        self.paused = True
        self.helpScreen()
        self.accept("p", self.flipPause)
        self.accept("h", self.helpFlip)
        self.accept("escape", sys.exit)
        self.taskMgr.add(self.update, "updateAll")
    def setCameraMode(self, mode):
        if mode == self.cameraMode:
            return

        winProps = WindowProperties()
        
        # Tear-down code for the current mode.
        if self.cameraMode == MOUSELOOK:
            winProps.setCursorHidden(False)
            self.removeTask(self.viewTask)
        elif self.cameraMode == TRACKBALL:
            self.removeTask(self.viewTask)

        # Set-up code for the new mode.
        if mode == MOUSELOOK:
            winProps.setCursorHidden(True)
            
            # Mouse accumulator. Whenever the mouse moves, it is reset to the
            # center of the window. The accumulator keeps track of the total
            # movement
            self.mouseAccX = 0
            self.mouseAccY = 0
            self.recenterMouse = True

            # Add a task that moves the camera based on mouse position.
            self.viewTask = taskMgr.add(self._mlViewTask, 'MLViewTask')
            self.lastFrameTime = 0  # Used to calculate dt in mlViewTask.
            self.instructionText.setText('[ESC]: Leave Mouselook Mode')
        
        elif mode == TRACKBALL:
            self.instructionText.setText('[m]: Enter Mouselook Mode')
            self.viewTask = taskMgr.add(self._trackballTask, 'TrackballTask')

        self.cameraMode = mode
        self.eventDispatcher.dispatchEvent(EVT_CAMERA_MODE, self)
        base.win.requestProperties(winProps)
Beispiel #41
0
    def __init__(self):
        ShowBase.__init__(self)
        # This creates the on screen title that is in every tutorial
        self.title = OnscreenText(text="IMU Glove", style=1, fg=(1, 1, 1, 1), pos=(0.87, -0.95), scale=0.07)

        # Turn cursor on
        props = WindowProperties()
        props.setCursorHidden(False)
        base.win.requestProperties(props)

        base.setBackgroundColor(0.6, 0.6, 1)  # Set the background color

        base.trackball.node().setPos(0, 30, -3)
        base.trackball.node().setHpr(-70, 0, 5)

        self.drawGrid()

        self.frameNav = self.drawAxis(render, [0, 0, 0])
        self.frameBody = self.drawAxis(render, [0, 0, 0])

        self.loadModels()  # Load and position our models

        self.initSocket()
        self.taskMgr.add(self.rollTask, "rollTask")
Beispiel #42
0
    def setCameraMode(self, mode):
        if mode == self.cameraMode:
            return

        winProps = WindowProperties()

        # Tear-down code for the current mode.
        if self.cameraMode == MOUSELOOK:
            winProps.setCursorHidden(False)
            self.removeTask(self.viewTask)
        elif self.cameraMode == TRACKBALL:
            self.removeTask(self.viewTask)

        # Set-up code for the new mode.
        if mode == MOUSELOOK:
            winProps.setCursorHidden(True)

            # Mouse accumulator. Whenever the mouse moves, it is reset to the
            # center of the window. The accumulator keeps track of the total
            # movement
            self.mouseAccX = 0
            self.mouseAccY = 0
            self.recenterMouse = True

            # Add a task that moves the camera based on mouse position.
            self.viewTask = taskMgr.add(self._mlViewTask, 'MLViewTask')
            self.lastFrameTime = 0  # Used to calculate dt in mlViewTask.
            self.instructionText.setText('[ESC]: Leave Mouselook Mode')

        elif mode == TRACKBALL:
            self.instructionText.setText('[m]: Enter Mouselook Mode')
            self.viewTask = taskMgr.add(self._trackballTask, 'TrackballTask')

        self.cameraMode = mode
        self.eventDispatcher.dispatchEvent(EVT_CAMERA_MODE, self)
        base.win.requestProperties(winProps)
Beispiel #43
0
    def stopOrbit(self):
        # This function takes the camera out of orbiting mode.

        self.orbiting = False
        # Sets the orbiting variable to false to designate orbiting mode as off.

        self.showbase.win.movePointer(
            0, int((self.storeX + 1.0) / 2 * self.showbase.win.getXSize()),
            int(self.showbase.win.getYSize() -
                ((self.storeY + 1.0) / 2 * self.showbase.win.getYSize())))
        # set to taken cursor values from startOrbit
        if self.showbase.mouseWatcherNode.hasMouse():
            # We're going to use the mouse, so we have to make sure it's in the game window. If it's not and we try to use it, we'll get
            # a crash error.
            mpos = self.showbase.mouseWatcherNode.getMouse()
            self.mx = mpos.getX()
            self.my = mpos.getY()

        # Get windows properties
        props = WindowProperties()
        # Set Hide Cursor Property
        props.setCursorHidden(False)
        # Set properties
        self.showbase.win.requestProperties(props)
Beispiel #44
0
    def disable(self):
        # Stop the mouse and kb tasks.
        self.enabled = False

        # ignore events
        base.ignore('w')
        base.ignore('w-up')
        base.ignore('s')
        base.ignore('s-up')
        base.ignore('a', )
        base.ignore('a-up')
        base.ignore('d')
        base.ignore('d-up')

        # Stop the camera task!
        taskMgr.remove(self.free_look_task)
        taskMgr.remove(self.free_look_kb_task)

        # Reset the camera position!!

        # show the mouse again
        props = WindowProperties()
        props.setCursorHidden(False)
        base.win.requestProperties(props)
    def __init__(self):
        ShowBase.__init__(self)
        self.title = "Monkeys"
        self.setFrameRateMeter(True)

        # Disable the camera trackball controls.
        self.disableMouse()
        props = WindowProperties()
        props.setCursorHidden(True)
        props.setTitle("Stay Away From The Monkeys")
        props.setMouseMode(WindowProperties.M_relative)
        self.win.requestProperties(props)
        # set scene
        self.scene = self.loader.loadModel("models/skyTest.egg")
        self.scene.reparentTo(self.render)
        m = 37
        self.scene.setScale(m, m, m)
        self.scene.setPos(0, 0, -5)
        # set camera
        self.camera.setPos(0, 0, 1)
        self.camera.setHpr(0, 0, 0)
        self.cameraSpeed = (0, 0, 0)
        self.maxSpeed = 0.09
        self.lastKeyPressed = ""
        self.blockList = []
        self.mobMax = 0
        self.player = Player(self.camera)
        self.loadModel()
        self.createBars()
        self.die = False
        self.paused = True
        self.helpScreen()
        self.accept("p",self.flipPause)
        self.accept("h",self.helpFlip)
        self.accept("escape",sys.exit)
        self.taskMgr.add(self.update, "updateAll")
Beispiel #46
0
    def gameLoop(self, task):

        #Compensate for inconsistent update intervals

        dt = globalClock.getDt()

        if self.GAME_MODE == MAIN_MENU:

            if not self.mode_initialized:

                self.buildMainMenu()

                self.mode_initialized = True

        if self.GAME_MODE == IN_GAME_MENU:

            if not self.mode_initialized:

                #Fog out background

                inGameMenuFogColor = (50, 150, 50)

                inGameMenuFog = Fog("inGameMenuFog")

                inGameMenuFog.setMode(Fog.MExponential)
                inGameMenuFog.setColor(*inGameMenuFogColor)
                inGameMenuFog.setExpDensity(.01)

                render.setFog(inGameMenuFog)

                self.buildInGameMenu()

                self.mode_initialized = True

        if self.GAME_MODE == PLAY:

            if not self.mode_initialized:

                props = WindowProperties()
                props.setCursorHidden(True) 
                base.win.requestProperties(props)

                self.last_mouse_x = self.win.getPointer(0).getX()
                self.last_mouse_y = self.win.getPointer(0).getY()

                self.mode_initialized = True

            if self.play_mode == TERRAIN:

                self.maintainTurrets()
                self.avatar.move(dt)

            elif self.play_mode == SPACE:

                self.asteroidManager.maintainAsteroidField(self.avatar.objectNP.getPos(), 
                                                           self.avatar.speed, dt)

            #Handle keyboard input

            self.avatar.handleKeys(self.keys, self.play_mode)

            ########## Mouse-based viewpoint rotation ##########

            mouse_pos = self.win.getPointer(0)

            current_mouse_x = mouse_pos.getX()
            current_mouse_y = mouse_pos.getY()

            #Side to side

            if self.play_mode == TERRAIN:

                mouse_shift_x = current_mouse_x - self.last_mouse_x
                self.last_mouse_x = current_mouse_x

                if current_mouse_x < 5 or current_mouse_x >= (self.win_center_x * 1.5):

                    base.win.movePointer(0, self.win_center_x, current_mouse_y)
                    self.last_mouse_x = self.win_center_x

                yaw_shift = -((mouse_shift_x) * Camera.ROT_RATE[0])

                self.avatar.yawRot += yaw_shift

                self.avatar.objectNP.setH(self.avatar.yawRot)

            #Up and down

            mouse_shift_y = current_mouse_y - self.last_mouse_y
            self.last_mouse_y = current_mouse_y

            if current_mouse_y < 5 or current_mouse_y >= (self.win_center_y * 1.5):

                base.win.movePointer(0, current_mouse_x, self.win_center_y)
                self.last_mouse_y = self.win_center_y

            pitch_shift = -((mouse_shift_y) * Camera.ROT_RATE[1])

            self.mainCamera.pitchRot += pitch_shift

            if self.mainCamera.pitchRot > Camera.FLEX_ROT_MAG[0]:

                self.mainCamera.pitchRot = Camera.FLEX_ROT_MAG[0]

            elif self.mainCamera.pitchRot < -Camera.FLEX_ROT_MAG[0]:

                self.mainCamera.pitchRot = -Camera.FLEX_ROT_MAG[0]

            xy_plane_cam_dist = Camera.AVATAR_DIST

            cam_x_adjust = xy_plane_cam_dist*sin(radians(self.avatar.yawRot))  
            cam_y_adjust = xy_plane_cam_dist*cos(radians(self.avatar.yawRot))
            cam_z_adjust = Camera.ELEVATION

            self.mainCamera.camObject.setH(self.avatar.yawRot)
            self.mainCamera.camObject.setP(self.mainCamera.pitchRot)

            self.mainCamera.camObject.setPos(self.avatar.objectNP.getX() + cam_x_adjust, self.avatar.objectNP.getY() - cam_y_adjust, 
                            self.avatar.objectNP.getZ() + cam_z_adjust)

            #Find collisions

            #self.cTrav.traverse(render)

            #print self.environ.getBounds()

        return Task.cont
 def makeMouseRelative(self):
     props = WindowProperties() # initates window node
     props.setCursorHidden(True) # hides cursor
     props.setMouseMode(WindowProperties.M_relative) # cursor stays
     self.win.requestProperties(props) # window accepts changes
Beispiel #48
0
 def show(self):
     props = WindowProperties()
     props.setCursorHidden(False)
     base.win.requestProperties(props)
Beispiel #49
0
 def hide(self):
     props = WindowProperties()
     props.setCursorHidden(True)
     base.win.requestProperties(props)
Beispiel #50
0
def disableMouse():
	base.disableMouse()
	props = WindowProperties()
	props.setCursorHidden(True)
	base.win.requestProperties(props)
Beispiel #51
0
    def __init__(self):

        ShowBase.__init__(self)

        ################
        #Terrain
        ################

        #######
        #self.environ = GeoMipTerrain("terrain")
        #self.environ.setHeightfield("../terrain/first.png")
        #self.environ.setColorMap("../terrain/first-c.png")
        #self.environ.generate()
        #self.environ.getRoot().setScale(1, 1, 100)
        #self.environ.getRoot().setPos(0, 0, 0)
        #self.environ.getRoot().reparentTo(render)
        #self.environ.getRoot().setName("terrain")
        #self.environ.getRoot().setCollideMask(BitMask32.bit(0))
        #######


        self.environ = loader.loadModel("models/environment")
        self.environ.setScale(.25, .25, .25)
        self.environ.reparentTo(render)
        self.environ.setCollideMask(BitMask32.bit(0))

        ################
        #Game objects 
        ################

        self.pandaActor = Actor("models/panda",
                                {"walk": "models/panda-walk"})
        self.pandaActor.setScale(.5, .5, .5)
        self.pandaActor.setHpr(180, 0, 0)
        #self.pandaActor.setPos(50, 50, 50)
        self.pandaActor.setPythonTag("moving", False)
        self.pandaActor.setCollideMask(BitMask32.allOff())
        self.avatarYawRot = 0
        self.avatarPitchRot = 0

        #self.teapot = loader.loadModel("models/teapot")
        #self.teapot.setScale(1, 1, 1)
        #self.teapot.setPos(60, 60, 50)
        #self.teapot.reparentTo(render)

        self.last_mouse_y = self.win.getPointer(0).getY()

        ################
        #Physics
        ################


        base.enableParticles()

        self.avatarNP=base.render.attachNewNode(ActorNode("actor"))
        # Sets up the mass. Note that in this scenario, mass is not taken into consideration.
        self.avatarNP.node().getPhysicsObject().setMass(100.)
        self.avatarNP.setPos(0,0,0)
        # Parent our avatar to the ready to go physics node
        self.pandaActor.reparentTo(self.avatarNP)

        gravityFN=ForceNode('world-forces')
        gravityFNP=render.attachNewNode(gravityFN)
        gravityForce=LinearVectorForce(0,0,-.1)
        gravityForce.setMassDependent(False)
        gravityFN.addForce(gravityForce)
        # Attach it to the global physics manager
        base.physicsMgr.addLinearForce(gravityForce)

        base.physicsMgr.attachPhysicalNode(self.avatarNP.node())

        ################
        #Collisions
        ################

        self.cTrav = CollisionTraverser()
        self.cTrav.showCollisions(base.render)

        self.pandaGroundRay = CollisionSphere(0,0,0,1)
        self.pandaGroundRayNode = CollisionNode('pandaGroundRay')
        self.pandaGroundRayNode.addSolid(self.pandaGroundRay)
        self.pandaGroundRayNode.setFromCollideMask(BitMask32.bit(0))
        self.pandaGroundRayNode.setIntoCollideMask(BitMask32.allOff())
        self.pandaGroundRayNodepath = self.avatarNP.attachNewNode(self.pandaGroundRayNode)
        self.pandaGroundRayNodepath.show()
        self.pandaGroundCollisionHandler = PhysicsCollisionHandler()
        self.pandaGroundCollisionHandler.addCollider(self.pandaGroundRayNodepath, self.avatarNP)
        self.cTrav.addCollider(self.pandaGroundRayNodepath, self.pandaGroundCollisionHandler)

        #self.teapotRay = CollisionSphere(0,0,0,5)
        #self.teapotGroundCol = CollisionNode('teapotRay')
        #self.teapotGroundCol.addSolid(self.teapotRay)
        #self.teapotGroundCol.setFromCollideMask(BitMask32.allOff())
        #self.teapotGroundCol.setIntoCollideMask(BitMask32.bit(0))
        #self.teapotGroundColNp = self.teapot.attachNewNode(self.teapotGroundCol)
        #self.teapotGroundHandler = CollisionHandlerQueue()
        #self.cTrav.addCollider(self.teapotGroundColNp, self.teapotGroundHandler)

        ################
        #Camera
        ################

        self.disableMouse()

        self.cam_away = 20
        self.cam_elevation = 0
        self.rot_rate = .5

        self.cam_dist = (self.cam_away**2 + self.cam_elevation**2) ** .5

        self.cam.setHpr(0, 0, 0)

        ################
        #Events
        ################

        self.taskMgr.add(self.gameLoop, "gameLoop", priority = 35)

        self.keys = {"w" : 0, "s" : 0, "a" : 0, "d" : 0}

        self.accept("w", self.setKey, ["w", 1])
        self.accept("w-up", self.setKey, ["w", 0])
        self.accept("s", self.setKey, ["s", 1])
        self.accept("s-up", self.setKey, ["s", 0])
        self.accept("a", self.setKey, ["a", 1])
        self.accept("a-up", self.setKey, ["a", 0])
        self.accept("d", self.setKey, ["d", 1])
        self.accept("d-up", self.setKey, ["d", 0])
        self.accept("wheel_up", self.zoomCamera, [-1])
        self.accept("wheel_down", self.zoomCamera, [1])

        self.accept('window-event', self.handleWindowEvent)

        props = WindowProperties()
        props.setCursorHidden(True) 
        base.win.requestProperties(props)

        self.last_mouse_x = self.win.getPointer(0).getX()
def hideMouse(hidden):
	wp = WindowProperties()
	wp.setCursorHidden(hidden)
	base.win.requestProperties(wp)
Beispiel #53
0
class NSDApp(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)
        self.keys = ReadKeys()

        self.wp = WindowProperties()
        self.wp.setFullscreen(1)
        self.wp.setSize(RESOLUTION)
        self.openMainWindow()
        self.win.requestProperties(self.wp)
        self.graphicsEngine.openWindows()
        self.setBackgroundColor(0, 0, 0)
        self.disableMouse()
        self.props = WindowProperties()
        self.props.setCursorHidden(True)
        self.win.requestProperties(self.props)
        self.title()

    def title(self):
        #Removes title and loads current room
        def destroyTitle(task):
            card.removeNode()
            startGame()

        def startGame():
            if os.path.isfile('saves/location.json'):
                self.directToRoom()
            else:
                self.homeFirst()

        #Loads title animation
        titleText = self.loader.loadTexture('resources/titleText.avi')
        titleText.setLoopCount(1)
        titleText.play()

        #Displays title
        cm = CardMaker('titleText')
        cm.setFrameFullscreenQuad()
        cm.setUvRange(titleText)
        # noinspection PyArgumentList
        card = NodePath(cm.generate())
        card.reparentTo(self.render2d)
        card.setTexture(titleText)
        self.taskMgr.doMethodLater(5.6, destroyTitle, 'endTitle')

    def saveRoom(self, cr):
        with open('saves/location.json', 'w+') as outfile:
            saveInfo = {'currentRoom': cr}
            json.dump(saveInfo,
                      outfile,
                      sort_keys=True,
                      indent=4,
                      ensure_ascii=False)

    def directToRoom(self):
        with open('saves/location.json') as df:
            data = json.load(df)

    def homeFirst(self):
        self.homeRoom()

    def homeRoom(self):
        self.saveRoom("1")