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")
def absolute(self): props = WindowProperties() props.setMouseMode(WindowProperties.M_absolute) base.win.requestProperties(props) if self.relative_requested: self.relative_requested = False
def relative(self): if self.mouse.hasMouse(): props = WindowProperties() props.setMouseMode(WindowProperties.M_relative) base.win.requestProperties(props) self.relative_requested = False else: self.relative_requested = True
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
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)
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)
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 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")
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
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 __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 __init__(self): homedir = '/Users/nightcrawler2/PreycapMaster/' sim_text = raw_input('Simulation Type: ') if sim_text[0] == 's': simulation = True if sim_text == 'r' or sim_text == 't': simulation = False if not simulation: if sim_text == 't': para_cont_window = np.load(homedir + 'para_continuity_window.npy') para_cont_window = int(para_cont_window) else: para_cont_window = 0 para_positions = np.load(homedir + '3D_paracoords.npy')[:, para_cont_window:] fish_position = np.load(homedir + 'ufish_origin.npy') fish_orientation = np.load(homedir + 'ufish.npy') try: self.strikelist = np.load(homedir + 'strikelist.npy') except IOError: self.strikelist = np.zeros(fish_position.shape[0]) elif simulation: para_positions = np.load(homedir + 'para_simulation' + sim_text[1] + '.npy') fish_position = np.load(homedir + 'origin_model' + sim_text[1] + '.npy') fish_orientation = np.load(homedir + 'uf_model' + sim_text[1] + '.npy') if para_positions.shape[1] != fish_position.shape[0]: end_fp = [ fish_position[-1] for i in range(para_positions.shape[1] - fish_position.shape[0]) ] end_fo = [ fish_orientation[-1] for i in range(para_positions.shape[1] - fish_orientation.shape[0]) ] fish_position = np.concatenate((fish_position, end_fp)) fish_orientation = np.concatenate((fish_orientation, end_fo)) try: self.strikelist = np.load(homedir + 'strikelist' + sim_text[1] + '.npy') print self.strikelist.shape except IOError: self.strikelist = np.zeros(fish_position.shape[0]) print self.strikelist.shape else: self.exitmodel() self.numpara = para_positions.shape[0] self.numframes = para_positions.shape[1] self.para_positions = para_positions dfx = gaussian_filter([x[0] for x in fish_position], 1) dfy = gaussian_filter([y[1] for y in fish_position], 1) dfz = gaussian_filter([z[2] for z in fish_position], 1) fish_position_filt = np.array([[x, y, z] for x, y, z in zip(dfx, dfy, dfz)]) self.fish_position = fish_position_filt fox = gaussian_filter([x[0] for x in fish_orientation], 1) foy = gaussian_filter([y[1] for y in fish_orientation], 1) foz = gaussian_filter([z[2] for z in fish_orientation], 1) fish_orientation_filt = np.array([[x, y, z] for x, y, z in zip(fox, foy, foz)]) self.fish_orientation = fish_orientation_filt print fish_orientation.shape print fish_position.shape print para_positions.shape print('numframes') print self.numframes ShowBase.__init__(self) self.accept("escape", self.exitmodel) # self.accept("escape", sys.exit) props = WindowProperties() props.setCursorHidden(False) props.setMouseMode(WindowProperties.M_absolute) self.win.requestProperties(props) self.lens1 = pandac.PandaModules.PerspectiveLens() self.lens1.setFov(90, 90) self.lens1.setNearFar(.1, 10000) # self.lens1.setAspectRatio(1920/1080.) self.lens1.setAspectRatio(1280 / 800.) self.cam.node().setLens(self.lens1) pivot = render.attachNewNode("pivot") # pivot.setPos(-1200, -1200, 944) pivot.setPos(3000, 3000, 944) self.cam.reparentTo(pivot) # self.cam.setH(100) # self.cam.setPos(-450, 944, 944) self.setBackgroundColor(1, 1, 1, 1) # Some Lines That Define Tank Boundaries self.d2 = pandac.PandaModules.LineSegs() self.d2.setColor(.5, .5, .5, 1) self.d2.setThickness(2) self.d2.moveTo(0, 0, 0) self.d2.drawTo(1888, 0, 0) self.d2.moveTo(0, 0, 0) self.d2.drawTo(0, 0, 1888) self.d2.moveTo(0, 0, 0) self.d2.drawTo(0, 1888, 0) self.d2.moveTo(1888, 1888, 0) self.d2.drawTo(1888, 1888, 1888) self.d2.moveTo(0, 1888, 1888) self.d2.drawTo(1888, 1888, 1888) self.d2.moveTo(1888, 0, 1888) self.d2.drawTo(1888, 1888, 1888) self.d2.moveTo(1888, 0, 0) self.d2.drawTo(1888, 1888, 0) self.d2.moveTo(1888, 0, 0) self.d2.drawTo(1888, 0, 1888) self.d2.moveTo(0, 1888, 0) self.d2.drawTo(1888, 1888, 0) self.d2.moveTo(0, 1888, 0) self.d2.drawTo(0, 1888, 1888) self.d2.moveTo(0, 0, 1888) self.d2.drawTo(0, 1888, 1888) self.d2.moveTo(0, 0, 1888) self.d2.drawTo(1888, 0, 1888) self.reference = self.loader.loadModel("sphere-highpoly") self.reference.reparentTo(self.render) self.reference.setScale(.01, .01, .01) self.reference.setColor(1, 1, 1) self.reference.setPos(944, 944, 944) self.cam.lookAt(self.reference) drawtank = True scale = 1888 if drawtank: self.tank = self.loader.loadModel("rgbCube.egg") self.tank.reparentTo(self.render) self.tank.setScale(scale, scale, scale) self.tank.setTransparency(1) self.tank.setAlphaScale(0.2) self.tank.setColor(.3, .6, .9) self.tank.setPos(scale / 2, scale / 2, scale / 2) # # geom2 = self.d2.create() self.nodegeom2 = self.render.attachNewNode(geom2) # Load the environment model. self.fishcone = self.loader.loadModel("Spotlight.egg") self.fishcone.setTexture(self.loader.loadTexture("white.png"), 1) self.fishcone.reparentTo(self.render) self.fishcone.setPos(0, 0, 0) self.fishcone.setScale(10, 10, 10) self.fishcone.setTransparency(1) self.fishcone.setAlphaScale(.5) self.fishcone.setColor(0, 0, 1) ''' These three lines make sure this is drawn before the tank. If you don't do this, tank blocks out the fishcone.''' self.fishcone.setBin("fixed", 0) self.fishcone.setDepthTest(False) self.fishcone.setDepthWrite(False) self.fishcone.show() self.spheres = dict({}) for i in range(int(self.numpara / 3)): self.spheres[i] = self.loader.loadModel("sphere.egg") # self.spheres[i] = Actor("models/panda-model", # {"walk": "models/panda-walk4"}) self.spheres[i].reparentTo(self.render) self.spheres[i].setScale(15, 15, 15) self.spheres[i].setColor(.25, .25, .25) # text = pandac.PandaModules.TextNode('node name') # text.setText(' ' + str(i)) # textNodePath = self.spheres[i].attachNewNode(text) # textNodePath.setScale(10) # textNodePath.setTwoSided(True) # textNodePath.setPos(-10, 0, 0) # textNodePath.setHpr(180, 0, 0) # self.sphere_fish = self.loader.loadModel("sphere-highpoly.egg") self.sphere_fish = self.loader.loadModel("sphere.egg") self.sphere_fish.reparentTo(self.render) self.sphere_fish.setScale(35, 35, 35) self.sphere_fish.setColor(1, 0, 0) self.sphere_fish.setTransparency(0) self.sphere_fish.setAlphaScale(.9) self.fish_uvec = self.loader.loadModel("sphere-highpoly") self.fish_uvec.reparentTo(self.render) self.fish_uvec.setScale(.01, .01, .01) self.fish_uvec.setColor(1, 1, 1) # Add the spinCameraTask procedure to the task manager. self.iteration = 0 self.complete = False self.taskMgr.add(self.movepara, "movepara")
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
def resetCursor(self): # To revert to normal mode: props = WindowProperties() props.setCursorHidden(False) props.setMouseMode(WindowProperties.M_absolute) self.win.requestProperties(props)
def absolute(): props = WindowProperties() props.setMouseMode(WindowProperties.M_absolute) base.win.requestProperties(props)
def relative(): props = WindowProperties() props.setMouseMode(WindowProperties.M_relative) base.win.requestProperties(props)
from direct.showbase.ShowBase import ShowBase import sys import math from pandac.PandaModules import WindowProperties from direct.gui.OnscreenText import OnscreenText props = WindowProperties() props.setCursorHidden(True) props.setMouseMode(WindowProperties.M_relative) class MyApp(ShowBase): def __init__(self): ShowBase.__init__(self) self.win.requestProperties(props) self.disableMouse() self.bunny = self.loader.loadModel('./models/bvw-f2004--bunny/bunny') self.bunny.reparentTo(self.render) self.bunny.setPos(0, 20, 0) self.env = self.loader.loadModel( './models/bvw-f2004--streetscene/street-scene') self.env.reparentTo(self.render) self.env.setPos(-20, 20, 0) self.call1 = OnscreenText(text='Position (Bunny):', pos=(-.85, .8), scale=.09, fg=(1, 1, 1, 1)) self.call2 = OnscreenText(text='Position (Camera):', pos=(-.85, .7), scale=.09, fg=(1, 1, 1, 1))
def __init__(self): ShowBase.__init__(self) props = WindowProperties() props.setCursorHidden(True) props.setMouseMode(WindowProperties.MRelative) self.win.requestProperties(props) self.disableMouse() self.environ = self.loader.loadModel('models/environment') self.environ.reparentTo(self.render) self.environ.setScale(.25, .25, .25) self.environ.setPos(-8, 42, 0) self.taskMgr.add(self.move_camera_task, 'move_camera_task') self.taskMgr.add(self.move_projectiles_task, 'move_projectiles_task') self.taskMgr.add(self.print_fps_task, 'print_fps_task') self.key_map = { 'cam-forward': False, 'cam-backward': False, 'cam-left': False, 'cam-right': False, } self.accept('w', self.set_key, ['cam-forward', True]) self.accept('w-up', self.set_key, ['cam-forward', False]) self.accept('s', self.set_key, ['cam-backward', True]) self.accept('s-up', self.set_key, ['cam-backward', False]) self.accept('a', self.set_key, ['cam-left', True]) self.accept('a-up', self.set_key, ['cam-left', False]) self.accept('d', self.set_key, ['cam-right', True]) self.accept('d-up', self.set_key, ['cam-right', False]) self.accept('escape', sys.exit) self.accept('mouse1', self.set_teapot) self.panda = Actor('models/panda-model', {'walk': 'models/panda-walk4'}) self.panda.setScale(.01, .01, .01) self.panda.reparentTo(self.render) self.panda.loop('walk') point_a = Point3(0, -10, 0) point_b = Point3(0, 10, 0) point_c = Point3(180, 0, 0) point_d = Point3(0, 0, 0) self.panda_pace = Sequence(self.panda.posInterval(3, point_a, startPos=point_b), self.panda.hprInterval(1, point_c, startHpr=point_d), self.panda.posInterval(3, point_b, startPos=point_a), self.panda.hprInterval(1, point_d, startHpr=point_c), name='panda_pace') self.panda_pace.loop() self.teapot = self.loader.loadModel('teapot') self.projectiles = [] self.fps_time = 0 self.fps = OnscreenText(text='0', style=1, fg=(1, 1, 1, 1), pos=(1.75, .95), align=TextNode.ARight, scale=.05)
def cursorShit(self): # To set relative mode and hide the cursor: props = WindowProperties() props.setCursorHidden(True) props.setMouseMode(WindowProperties.M_confined) self.win.requestProperties(props)