예제 #1
0
 def onSize(self, evt):
     """Invoked when the viewport is resized."""
     if self.win != None:
         wp = WindowProperties()
         wp.setOrigin(0, 0)
         wp.setSize(self.ClientSize.GetWidth(), self.ClientSize.GetHeight())
         self.win.requestProperties(wp)
예제 #2
0
파일: test2.py 프로젝트: nano13/simulacron
 def bindToWindow(self, windowHandle):
     wp = WindowProperties().getDefault()
     wp.setOrigin(0,0)
     wp.setSize(P3D_WIN_WIDTH, P3D_WIN_HEIGHT)
     wp.setParentWindow(windowHandle)
     base.openDefaultWindow(props=wp)
     self.wp = wp
예제 #3
0
파일: wxPanda.py 프로젝트: Derfies/p3d
 def OnResize(self, event):
     """When the wx-panel is resized, fit the panda3d window into it."""
     frame_size = event.GetSize()
     wp = WindowProperties()
     wp.setOrigin(0, 0)
     wp.setSize(frame_size.GetWidth(), frame_size.GetHeight())
     self._win.requestProperties(wp)
예제 #4
0
 def bindToWindow(self, windowHandle):
     wp = WindowProperties().getDefault()
     wp.setOrigin(self._x, self._y)
     wp.setSize(self._width, self._height)
     wp.setParentWindow(windowHandle)
     base.openDefaultWindow(props=wp)
     self.wp = wp
예제 #5
0
def launch_panda_window(panda_widget, size):
    """
    Configure and create Panda window
    Connect to the gtk widget resize event
    Load a panda
    """
    props = WindowProperties().getDefault()
    props.setOrigin(0, 0)
    props.setSize(*size)
    props.setParentWindow(panda_widget.window.xid)
    base.openDefaultWindow(props=props)
    # ==
    panda_widget.connect("size_allocate", resize_panda_window)
    # ==
    panda = loader.loadModel("panda")
    panda.reparentTo(render)
    panda.setPos(0, 40, -5)

    pl = render.attachNewNode(PointLight("redPointLight"))
    pl.node().setColor(Vec4(.9, .8, .8, 1))
    render.setLight(pl)
    pl.node().setAttenuation(Vec3(0, 0, 0.05))

    slight = Spotlight('slight')
    slight.setColor(VBase4(1, 1, 1, 1))
    lens = PerspectiveLens()
    slight.setLens(lens)
    slnp = render.attachNewNode(slight)
    slnp.setPos(2, 20, 0)
    mid = PandaNode('mid')
    panda.attachNewNode(mid)
    #    slnp.lookAt(mid)
    render.setLight(slnp)
예제 #6
0
 def resize_panda_window(self, widget, request) :
     props = WindowProperties().getDefault()
     props = WindowProperties(self.base.win.getProperties())
     props.setOrigin(0, 0)
     props.setSize(request.width, request.height)
     props.setParentWindow(widget.window.xid)
     self.base.win.requestProperties(props)
예제 #7
0
def launch_panda_window(panda_widget, size) :
    """
    Configure and create Panda window
    Connect to the gtk widget resize event
    Load a panda
    """
    props = WindowProperties().getDefault()
    props.setOrigin(0, 0)
    props.setSize(*size)
    props.setParentWindow(panda_widget.window.xid)
    base.openDefaultWindow(props=props)
    # ==
    panda_widget.connect("size_allocate", resize_panda_window)
    # ==
    panda = loader.loadModel("panda")
    panda.reparentTo(render)
    panda.setPos(0, 40, -5)

    pl = render.attachNewNode( PointLight( "redPointLight" ) )
    pl.node().setColor( Vec4( .9, .8, .8, 1 ) )
    render.setLight(pl)
    pl.node().setAttenuation( Vec3( 0, 0, 0.05 ) ) 


    slight = Spotlight('slight')
    slight.setColor(VBase4(1, 1, 1, 1))
    lens = PerspectiveLens()
    slight.setLens(lens)
    slnp = render.attachNewNode(slight)
    slnp.setPos(2, 20, 0)
    mid = PandaNode('mid')
    panda.attachNewNode(mid)
#    slnp.lookAt(mid)
    render.setLight(slnp)
예제 #8
0
 def OnResize( self, event ):
     """When the wx-panel is resized, fit the panda3d window into it."""
     frame_size = event.GetSize()
     wp = WindowProperties()
     wp.setOrigin( 0, 0 )
     wp.setSize( frame_size.GetWidth(), frame_size.GetHeight() )
     self._win.requestProperties( wp )
예제 #9
0
 def onSize(self, evt):
     """Invoked when the viewport is resized."""
     if self.win != None:
         wp = WindowProperties()
         wp.setOrigin(0, 0)
         wp.setSize(self.ClientSize.GetWidth(), self.ClientSize.GetHeight())
         self.win.requestProperties(wp)
예제 #10
0
 def resize_panda_window(self, widget, request):
     props = WindowProperties().getDefault()
     props = WindowProperties(self.base.win.getProperties())
     props.setOrigin(0, 0)
     props.setSize(request.width, request.height)
     props.setParentWindow(widget.window.xid)
     self.base.win.requestProperties(props)
예제 #11
0
    def setupWindow(self, windowType, x, y, width, height,
                    parent):
        """ Applies the indicated window parameters to the prc
        settings, for future windows; or applies them directly to the
        main window if the window has already been opened.  This is
        called by the browser. """

        if self.started and base.win:
            # If we've already got a window, this must be a
            # resize/reposition request.
            wp = WindowProperties()
            if x or y or windowType == 'embedded':
                wp.setOrigin(x, y)
            if width or height:
                wp.setSize(width, height)
            if windowType == 'embedded':
                wp.setParentWindow(parent)
            wp.setFullscreen(False)
            base.win.requestProperties(wp)
            self.windowProperties = wp
            return

        # If we haven't got a window already, start 'er up.  Apply the
        # requested setting to the prc file, and to the default
        # WindowProperties structure.

        self.__clearWindowProperties()

        if windowType == 'hidden':
            data = 'window-type none\n'
        else:
            data = 'window-type onscreen\n'

        wp = WindowProperties.getDefault()

        wp.clearParentWindow()
        wp.clearOrigin()
        wp.clearSize()

        wp.setFullscreen(False)
        if windowType == 'fullscreen':
            wp.setFullscreen(True)

        if windowType == 'embedded':
            wp.setParentWindow(parent)

        if x or y or windowType == 'embedded':
            wp.setOrigin(x, y)

        if width or height:
            wp.setSize(width, height)

        self.windowProperties = wp
        self.windowPrc = loadPrcFileData("setupWindow", data)
        WindowProperties.setDefault(wp)

        self.gotWindow = True

        # Send this call to the main thread; don't call it directly.
        messenger.send('AppRunner_startIfReady', taskChain = 'default')
예제 #12
0
파일: Editor.py 프로젝트: crempp/psg
	def OnInit(self):
		#prepare and start the p3d-wx hybrid-engine mainloop
		self.wxevt_loop = wx.EventLoop()
		self.wxevt_old_loop = wx.EventLoop.GetActive()
		wx.EventLoop.SetActive(self.wxevt_loop)
		base.taskMgr.add(self._mainLoop, "MainLoopTask")
		
		#instantiate and assign the wx UI object
		self.win = P3dWxWindow(size=wx.Size(640, 480))
		self.SetTopWindow(self.win)
		
		#show the wx window
		self.win.Show(True)
		# is essential to let make up wx window before P3D stuff
		self._mainLoop()
		
		#bind wx events
		self.win.Bind(wx.EVT_SIZE, self.onSize)
		self.win.Bind(wx.EVT_CLOSE, self.onClose)
		self.vetoActivate=False
		self.win.Bind(wx.EVT_ACTIVATE, self.onActivate)
		
		#open the p3d window undecorated to use in the wx frame window
		wp=WindowProperties().getDefault()
		wp.setUndecorated(True)
		wp.setOpen(True)
		wp.setParentWindow(self.win.getP3DSurface())
		wp.setOrigin(0,0)
		wp.setForeground(True)
		wp.setSize(*self.win.getP3DSurfaceSize())
		print ">>>opening p3dsurface"
		assert base.openDefaultWindow(props=wp) == True
		#
		return True
예제 #13
0
파일: Editor.py 프로젝트: crempp/psg
    def OnInit(self):
        #prepare and start the p3d-wx hybrid-engine mainloop
        self.wxevt_loop = wx.EventLoop()
        self.wxevt_old_loop = wx.EventLoop.GetActive()
        wx.EventLoop.SetActive(self.wxevt_loop)
        base.taskMgr.add(self._mainLoop, "MainLoopTask")

        #instantiate and assign the wx UI object
        self.win = P3dWxWindow(size=wx.Size(640, 480))
        self.SetTopWindow(self.win)

        #show the wx window
        self.win.Show(True)
        # is essential to let make up wx window before P3D stuff
        self._mainLoop()

        #bind wx events
        self.win.Bind(wx.EVT_SIZE, self.onSize)
        self.win.Bind(wx.EVT_CLOSE, self.onClose)
        self.vetoActivate = False
        self.win.Bind(wx.EVT_ACTIVATE, self.onActivate)

        #open the p3d window undecorated to use in the wx frame window
        wp = WindowProperties().getDefault()
        wp.setUndecorated(True)
        wp.setOpen(True)
        wp.setParentWindow(self.win.getP3DSurface())
        wp.setOrigin(0, 0)
        wp.setForeground(True)
        wp.setSize(*self.win.getP3DSurfaceSize())
        print ">>>opening p3dsurface"
        assert base.openDefaultWindow(props=wp) == True
        #
        return True
예제 #14
0
    def setupWindow(self, windowType, x, y, width, height, parent):
        """ Applies the indicated window parameters to the prc
        settings, for future windows; or applies them directly to the
        main window if the window has already been opened.  This is
        called by the browser. """

        if self.started and base.win:
            # If we've already got a window, this must be a
            # resize/reposition request.
            wp = WindowProperties()
            if x or y or windowType == 'embedded':
                wp.setOrigin(x, y)
            if width or height:
                wp.setSize(width, height)
            if windowType == 'embedded':
                wp.setParentWindow(parent)
            wp.setFullscreen(False)
            base.win.requestProperties(wp)
            self.windowProperties = wp
            return

        # If we haven't got a window already, start 'er up.  Apply the
        # requested setting to the prc file, and to the default
        # WindowProperties structure.

        self.__clearWindowProperties()

        if windowType == 'hidden':
            data = 'window-type none\n'
        else:
            data = 'window-type onscreen\n'

        wp = WindowProperties.getDefault()

        wp.clearParentWindow()
        wp.clearOrigin()
        wp.clearSize()

        wp.setFullscreen(False)
        if windowType == 'fullscreen':
            wp.setFullscreen(True)

        if windowType == 'embedded':
            wp.setParentWindow(parent)

        if x or y or windowType == 'embedded':
            wp.setOrigin(x, y)

        if width or height:
            wp.setSize(width, height)

        self.windowProperties = wp
        self.windowPrc = loadPrcFileData("setupWindow", data)
        WindowProperties.setDefault(wp)

        self.gotWindow = True

        # Send this call to the main thread; don't call it directly.
        messenger.send('AppRunner_startIfReady', taskChain='default')
예제 #15
0
def resize_panda_window(widget, request):
    """ Connected to resize event of the widget Panda is draw on so that the Panda window update its size """
    props = WindowProperties().getDefault()
    props = WindowProperties(base.win.getProperties())
    props.setOrigin(0, 0)
    props.setSize(request.width, request.height)
    props.setParentWindow(widget.window.xid)
    base.win.requestProperties(props)
예제 #16
0
 def onSize(self, event):
     wp = WindowProperties()
     wp.setOrigin(0, 0)
     x,y = self.GetClientSize()
     wp.setSize(x,y)
     base.camLens.setAspectRatio(1.0*y/x)
     base.win.requestProperties(wp)
     event.Skip()
예제 #17
0
def resize_panda_window(widget, request) :
    """ Connected to resize event of the widget Panda is draw on so that the Panda window update its size """
    props = WindowProperties().getDefault()
    props = WindowProperties(base.win.getProperties())
    props.setOrigin(0, 0)
    props.setSize(request.width, request.height)
    props.setParentWindow(widget.window.xid)
    base.win.requestProperties(props)
예제 #18
0
 def resizeWindow(self, window_id, width, height):
     """window_id is an index of a window from base.winList."""
     window = self.windows[window_id]
     old_wp = window.getProperties()
     if old_wp.getXSize() == width and old_wp.getYSize() == height:
         return
     wp = WindowProperties()
     wp.setOrigin(0, 0)
     wp.setSize(width, height)
     window.requestProperties(wp)
예제 #19
0
 def resizeWindow(self, window_id, width, height):
     """window_id is an index of a window from base.winList."""
     window = self.windows[window_id]
     old_wp = window.getProperties()
     if old_wp.getXSize() == width and old_wp.getYSize() == height:
         return
     wp = WindowProperties()
     wp.setOrigin(0, 0)
     wp.setSize(width, height)
     window.requestProperties(wp)
예제 #20
0
    def initialize(self):
        self.Update()
        wp = WindowProperties()
        wp.setOrigin(0, 0)
        wp.setSize(self.ClientSize.GetWidth(), self.ClientSize.GetHeight())
        assert self.GetHandle() != 0
        wp.setParentWindow(self.GetHandle())

        # initializing panda window
        base.windowType = "onscreen"
        props = WindowProperties.getDefault()
        props.addProperties(wp)
        self.win = base.openWindow(props=props, gsg=ViewportManager.gsg)
        if self.win:
            self.cam2d = base.makeCamera2d(self.win)
            self.cam2d.node().setCameraMask(LE_CAM_MASKS[self.name])

        if ViewportManager.gsg == None:
            ViewportManager.gsg = self.win.getGsg()
        self.cam = base.camList[-1]
        self.camera = render.attachNewNode(self.name)
        #self.camera.setName(self.name)
        #self.camera.reparentTo(render)
        self.cam.reparentTo(self.camera)
        self.camNode = self.cam.node()

        self.camNode.setCameraMask(LE_CAM_MASKS[self.name])

        self.bt = base.setupMouse(self.win, True)
        self.bt.node().setPrefix('_le_%s_' % self.name[:3])
        mw = self.bt.getParent()
        mk = mw.getParent()
        winCtrl = WindowControls(self.win,
                                 mouseWatcher=mw,
                                 cam=self.camera,
                                 camNode=self.camNode,
                                 cam2d=None,
                                 mouseKeyboard=mk,
                                 grid=self.grid)
        base.setupWindowControls(winCtrl)

        self.initialized = True
        if self.lens != None: self.cam.node().setLens(self.lens)
        if self.camPos != None: self.camera.setPos(self.camPos)
        if self.camLookAt != None: self.camera.lookAt(self.camLookAt)

        self.camLens = self.camNode.getLens()

        if self.name in ['top', 'front', 'left']:
            x = self.ClientSize.GetWidth() * 0.1
            y = self.ClientSize.GetHeight() * 0.1
            self.camLens.setFilmSize(x, y)

        self.Bind(wx.EVT_SIZE, self.onSize)
예제 #21
0
    def initialize(self):
        self.Update()
        wp = WindowProperties()
        wp.setOrigin(0, 0)
        wp.setSize(self.ClientSize.GetWidth(), self.ClientSize.GetHeight())
        assert self.GetHandle() != 0
        wp.setParentWindow(self.GetHandle())

        # initializing panda window
        base.windowType = "onscreen"
        props = WindowProperties.getDefault()
        props.addProperties(wp)
        self.win = base.openWindow(props = props, gsg = ViewportManager.gsg)
        if self.win:
            self.cam2d = base.makeCamera2d(self.win)
            self.cam2d.node().setCameraMask(LE_CAM_MASKS[self.name])

        if ViewportManager.gsg == None:
            ViewportManager.gsg = self.win.getGsg()
        self.cam = base.camList[-1]
        self.camera = render.attachNewNode(self.name)
        #self.camera.setName(self.name)
        #self.camera.reparentTo(render)
        self.cam.reparentTo(self.camera)
        self.camNode = self.cam.node()

        self.camNode.setCameraMask(LE_CAM_MASKS[self.name])

        self.bt = base.setupMouse(self.win, True)
        self.bt.node().setPrefix('_le_%s_'%self.name[:3])
        mw = self.bt.getParent()
        mk = mw.getParent()
        winCtrl = WindowControls(
                    self.win, mouseWatcher=mw,
                    cam=self.camera,
                    camNode = self.camNode,
                    cam2d=None,
                    mouseKeyboard =mk,
                    grid = self.grid)
        base.setupWindowControls(winCtrl)

        self.initialized = True
        if self.lens != None:      self.cam.node().setLens(self.lens)
        if self.camPos != None:    self.camera.setPos(self.camPos)
        if self.camLookAt != None: self.camera.lookAt(self.camLookAt)

        self.camLens = self.camNode.getLens()

        if self.name in ['top', 'front', 'left']:
            x = self.ClientSize.GetWidth() * 0.1
            y = self.ClientSize.GetHeight() * 0.1
            self.camLens.setFilmSize(x, y)

        self.Bind(wx.EVT_SIZE, self.onSize)
예제 #22
0
 def fullscreen(self):
     '''
     Witch between Fullscreen and window mode
     '''
     self._conf.fullscreen = not self._conf.fullscreen
     wp = WindowProperties()
     wp.setFullscreen(self._conf.fullscreen)
     wp.setOrigin(0, 0)
     wp.setSize(int(base.pipe.getDisplayWidth()),
                int(base.pipe.getDisplayHeight()))
     base.win.requestProperties(wp)
     self.option()
예제 #23
0
	def makeGameEngine(self):
		''' Creates a new game engine based on settings in GameSettings.
			Information for this came from here
			http://panda3d.org/phpbb2/viewtopic.php?t=2848'''
		
		LOG.debug("[GXMgr] Building game engine")
		
		# Temporary
		# TODO: Fix this
		props = WindowProperties()
		props.setFullscreen(False) 
		props.setUndecorated(False) 
		#screenx = int(base.pipe.getDisplayWidth()/2) - (int(self.ScreenWidth)/2)
		#screeny = int(base.pipe.getDisplayHeight()/2) - (int(self.ScreenHeight)/2) 
		#self.TempScreenSizeRX = int(self.ScreenWidth) 
		#self.TempScreenSizeRY = int(self.ScreenHeight) 
		props.setOrigin(100,100) 
		props.setSize(1024,768) 
		base.win.requestProperties(props) 
		
		# This was the old way that no longer works - I don't know why
		## Create a new FrameBufferProperties object using our settings
		#fbProps = FrameBufferProperties()
		#fbProps.addProperties(FrameBufferProperties.getDefault())
		#fbProps.setMultisamples(GameSettings().antiAlias)
		#fbProps.setAlphaBits(GameSettings().alphaBits)
		#fbProps.setDepthBits(GameSettings().colorDepth)
		#fbProps.setColorBits(24)
		#
		## Create a WindowProperties object
		#winProps = WindowProperties( base.win.getProperties() )
		#winProps.setFullscreen(GameSettings().fullscreen)
		#winProps.setUndecorated(GameSettings().fullscreen)
		#winProps.setSize(GameSettings().xRes,GameSettings().yRes)
		#winProps.setTitle('PSG - Project Space Game: Alpha')
		#
		## Create the engine
		#base.graphicsEngine.makeOutput(base.pipe,  # GraphicsPipe
		#						'mainGameOutput',  # Name
		#						0,                 # Sort
		#						fbProps,           # FrameBufferProperties
		#						winProps,          # WindowProperties
		#						GraphicsPipe.BFRequireWindow | GraphicsPipe.BFFbPropsOptional, # Flags
		#						base.win.getGsg()) # GraphicsStateGaurdian
		##base.openMainWindow(props=winProps, gsg=base.win.getGsg(), keepCamera=1)
		#base.openMainWindow()
		#base.graphicsEngine.openWindows()
		#base.win.requestProperties(winProps)
		## The following code should proabably be moved somewhere else
		#showFPS = GameSettings().showFPS
		#base.setFrameRateMeter(showFPS)
		
예제 #24
0
 def addWindow(self, handle=None, width=500, height=500):
     """Create a new window showing the scene. Add it to the windows list
     and return it.
     If handle is not None, it is used as parent window.
     """
     wp = WindowProperties()
     wp.setOrigin(0, 0)
     wp.setSize(width, height)
     if handle is not None:
         wp.setParentWindow(handle)
     self.base.openDefaultWindow(props=wp,
                                 type="onscreen",
                                 requireWindow=True)
     return self.base.winList[-1]
    def __init__(self):
        print("began")
        self.taskMgr = taskMgr
        with open('config.json') as data_file:    
            self.conf = json.load(data_file)
        self.ServerConnection = ServerConnection()#uncomment when going live
        self.ServerConnection.connect(self.conf['host'],self.conf['port'])#uncomment when going live
        props = WindowProperties( )
        props.setTitle( 'Log In' )
        props.setFixedSize(True)
        props.setSize(1280,740)
        props.setOrigin(-2,-2)
        base.win.requestProperties( props )
        self.base = ShowBase
        self.main_theme = base.loader.loadSfx("assets/sounds/terminator_theme.ogg")
        self.main_theme.play()
        
        self.username = ""
        
        self.authConnection = AuthConnectionModel(self)#uncomment when going live
        
        self.heartbeatConnection = HeartbeatConnectionModel()#uncomment when going live
        
        self.ServerConnection.setupConnectionModel(self.heartbeatConnection)#uncomment when going live
        
        self.globalChatConnection = ChatConnectionModel(self)
        self.ServerConnection.setupConnectionModel(self.globalChatConnection)
        
        self.queueConnection = QueueConnectionModel(self)
        self.ServerConnection.setupConnectionModel(self.authConnection)#uncomment when going live
        
        self.friendConnection = FriendConnectionModel(self)
        self.ServerConnection.setupConnectionModel(self.friendConnection)
        
        
        self.taskMgr.doMethodLater(self.conf['heartbeatRate'], self.doHeartbeat, "heartbeat")#uncomment when going live
        
        self.taskMgr.doMethodLater(self.conf['heartbeatRate'], self.doHeartbeat, "heartbeat")
        
        self.screen = Login(self)#uncomment when going live
        #self.screen = Menu(self)#comment this one when you are trying to log into it like normal

        self.ServerConnection.setupConnectionModel(self.queueConnection)
        
        self.taskMgr.doMethodLater(self.conf['heartbeatRate'], self.doHeartbeat, "heartbeat")
        
        self.taskMgr.doMethodLater(1, self.doSong, "song")
        
        self.screenType = "login"
        self.screen.run()
예제 #26
0
 def addWindow(self, handle=None, width=500, height=500):
     """Create a new window showing the scene. Add it to the windows list
     and return it.
     If handle is not None, it is used as parent window.
     """
     wp = WindowProperties()
     wp.setOrigin(0, 0)
     wp.setSize(width, height)
     if handle is not None:
         wp.setParentWindow(handle)
     self.base.openDefaultWindow(props=wp,
                                 type="onscreen",
                                 requireWindow=True)
     return self.base.winList[-1]
예제 #27
0
    def onSize(self, evt):
        """Invoked when the viewport is resized."""
        if self.win != None:
            wp = WindowProperties()
            wp.setOrigin(0, 0)
            newWidth = self.ClientSize.GetWidth()
            newHeight = self.ClientSize.GetHeight()
            wp.setSize(newWidth, newHeight)
            self.win.requestProperties(wp)

            if hasattr(base, "direct") and base.direct:
                for dr in base.direct.drList:
                    if dr.camNode == self.camNode:
                        dr.updateFilmSize(newWidth, newHeight)
                        break
예제 #28
0
    def onSize(self, evt):
        """Invoked when the viewport is resized."""
        if self.win != None:
            wp = WindowProperties()
            wp.setOrigin(0, 0)
            newWidth = self.ClientSize.GetWidth()
            newHeight = self.ClientSize.GetHeight()
            wp.setSize(newWidth, newHeight)
            self.win.requestProperties(wp)

            if hasattr(base, "direct") and base.direct:
                for dr in base.direct.drList:
                    if dr.camNode == self.camNode:
                        dr.updateFilmSize(newWidth, newHeight)
                        break
예제 #29
0
파일: wxPanda.py 프로젝트: Derfies/p3d
 def Initialize(self, useMainWin=True):
     """
     The panda3d window must be put into the wx-window after it has been
     shown, or it will not size correctly.
     """
     assert self.GetHandle() != 0
     wp = WindowProperties()
     wp.setOrigin(0, 0)
     wp.setSize(self.ClientSize.GetWidth(), self.ClientSize.GetHeight())
     wp.setParentWindow(self.GetHandle())
     if self._win is None:
         if useMainWin:
             base.openDefaultWindow(props=wp, gsg=None)
             self._win = base.win
         else:
             self._win = base.openWindow(props=wp, makeCamera=0)
     self.Bind(wx.EVT_SIZE, self.OnResize)
예제 #30
0
 def Initialize( self, useMainWin=True ):
     """
     The panda3d window must be put into the wx-window after it has been
     shown, or it will not size correctly.
     """
     assert self.GetHandle() != 0
     wp = WindowProperties()
     wp.setOrigin( 0, 0 )
     wp.setSize( self.ClientSize.GetWidth(), self.ClientSize.GetHeight() )
     wp.setParentWindow( self.GetHandle() )
     if self._win is None:
         if useMainWin:
             base.openDefaultWindow( props=wp, gsg=None )
             self._win = base.win
         else:
             self._win = base.openWindow( props=wp, makeCamera=0 )
     self.Bind( wx.EVT_SIZE, self.OnResize )
예제 #31
0
 def configure(self, widget, event):
     if self.showbase != None:
         x_offset, y_offset = self.translate_coordinates(widget, 0, 0)
         
         x, y = self.gtk_window.window.get_position()
         
         wp = WindowProperties().getDefault()
         wp.setOrigin(x + x_offset, y + y_offset) 
         wp.setSize(self.get_allocation().width, self.get_allocation().height) 
         wp.setUndecorated(True)
         
         # apply window property changes to the window 
         self.showbase.win.requestProperties(wp)
         
         # for debugging purposes turn show the frame rate
         # to decide about the interval for calling self.step
         # with a gobject timeout
         self.showbase.setFrameRateMeter(True)
예제 #32
0
 def initialize(self):
     self.Update()
     wp = WindowProperties()
     wp.setOrigin(0, 0)
     wp.setSize(self.ClientSize.GetWidth(), self.ClientSize.GetHeight())
     assert self.GetHandle() != 0
     wp.setParentWindow(self.GetHandle())
     Window.__init__(self, extraProps=wp)
     self.initialized = True
     if self.lens != None: self.camera.node().setLens(self.lens)
     if self.camPos != None: self.camera.setPos(self.camPos)
     if self.camLookAt != None: self.camera.lookAt(self.camLookAt)
     self.Bind(wx.EVT_SIZE, self.onSize)
     self.accept("wheel_down", self.zoomOut)
     self.accept("wheel_up", self.zoomIn)
     self.accept("page_down", self.zoomOut)
     self.accept("page_down-repeat", self.zoomOut)
     self.accept("page_up", self.zoomIn)
     self.accept("page_up-repeat", self.zoomIn)
예제 #33
0
파일: menu.py 프로젝트: 2015-CS454/dd-team
    def __init__(self, World):
        #just comment out the two lines below
        #self.appRunner = None#added this to overide the login
        self.playerList = []
        self.World = World
        self.WhichScreen = "";
        self.lastSelectedFriend = None

        # variable to save game selected DD or RR
        self.selectedGame = None

        #self.taskMgr = World.taskMgr#added this to overide the login

        props = WindowProperties()
        props.setTitle( 'Main Menu' )
        props.setFixedSize(True)
        props.setSize(1400,740)
        props.setOrigin(-2,-2)
        base.win.requestProperties( props )

        self.selectedCar = 0
        self.screenBtns = []

        self.globalChat = []
        self.privateChat = {}
        self.chatOffset = 0
        self.car = None
        
        self.onReturnMatch = self.createMatchMaking
        

        self.createSocialization()
        
        
        self.World.queueConnection.setHandler(self.handleQueueNotification)
        self.World.globalChatConnection.setHandler(self.handleChatNotification)
        self.World.friendConnection.setHandlers(self.handleFriendNotification,self.handleFriendListNotification)
        
        #self.World.privateChatConnection.setHandler(self.handlePrivateChatNotification)
        self.navi()

        self.accept('enter', self.sendMessage)
예제 #34
0
 def initialize(self):
     self.Update()
     wp = WindowProperties()
     wp.setOrigin(0, 0)
     wp.setSize(self.ClientSize.GetWidth(), self.ClientSize.GetHeight())
     assert self.GetHandle() != 0
     wp.setParentWindow(self.GetHandle())
     Window.__init__(self, extraProps=wp)
     self.initialized = True
     if self.lens != None:
         self.camera.node().setLens(self.lens)
     if self.camPos != None:
         self.camera.setPos(self.camPos)
     if self.camLookAt != None:
         self.camera.lookAt(self.camLookAt)
     self.Bind(wx.EVT_SIZE, self.onSize)
     self.accept("wheel_down", self.zoomOut)
     self.accept("wheel_up", self.zoomIn)
     self.accept("page_down", self.zoomOut)
     self.accept("page_down-repeat", self.zoomOut)
     self.accept("page_up", self.zoomIn)
     self.accept("page_up-repeat", self.zoomIn)
예제 #35
0
    def __init__(self, gtkParentWidget):
        self.pose = {}
        self.enter = 1 # 0..1 flies in the cubes
        self.currentMessage = self.cornerMessage = None
        self.videoFrame = None
        self.animSeed = 0
        self.cubeNodes = {} # color: NodePath
        self.currentLighting = 'train'
        
        self.gtkParentWidget = gtkParentWidget

        self.base = base # from DirectStart

        props = WindowProperties().getDefault()
        props.setOrigin(0, 0)
        props.setSize(1,1)
        props.setParentWindow(self.gtkParentWidget.window.xid)
        self.base.openDefaultWindow(props=props)

        self.gtkParentWidget.connect("size_allocate", self.resize_panda_window)
        self.originalNodes = self.base.render.getChildren()

        self.init()
예제 #36
0
    def __init__(self, gtkParentWidget):
        self.pose = {}
        self.enter = 1  # 0..1 flies in the cubes
        self.currentMessage = self.cornerMessage = None
        self.videoFrame = None
        self.animSeed = 0
        self.cubeNodes = {}  # color: NodePath
        self.currentLighting = 'train'

        self.gtkParentWidget = gtkParentWidget

        self.base = base  # from DirectStart

        props = WindowProperties().getDefault()
        props.setOrigin(0, 0)
        props.setSize(1, 1)
        props.setParentWindow(self.gtkParentWidget.window.xid)
        self.base.openDefaultWindow(props=props)

        self.gtkParentWidget.connect("size_allocate", self.resize_panda_window)
        self.originalNodes = self.base.render.getChildren()

        self.init()
def centerWindow():
	curProps = base.win.getProperties()
	wp = WindowProperties()
	wp.setOrigin((base.pipe.getDisplayWidth() - curProps.getXSize()) / 2,
		(base.pipe.getDisplayHeight() - curProps.getYSize()) / 2)
	base.win.requestProperties(wp)
예제 #38
0
    def __init__(self):

        ShowBase.__init__(self)

        ########## Window configuration #########

        wp = WindowProperties()

        wp.setSize(1024, 860)
        wp.setTitle("")
        wp.setOrigin(-2, -2)

        self.win.requestProperties(wp)

        self.win.movePointer(0, wp.getXSize() / 2, wp.getYSize() / 2)
        print wp.getXSize() / 2, wp.getYSize() / 2

        ########## Gameplay settings #########

        self.gameMode = {"display": PLAY, "play": TERRAIN}

        self.level = 1.5

        self.mode_initialized = False

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

        self.disableMouse()

        self.mainCamera = Camera(self.camera)

        self.mainCamera.camObject.setHpr(0, 0, 0)

        self.loadLevel()

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

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

        self.keys = {"w": 0, "s": 0, "a": 0, "d": 0, "space": 0, "escape": 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("space", self.setKey, ["space", 1])
        self.accept("space-up", self.setKey, ["space", 0])
        self.accept("escape", self.setKey, ["escape", 1])
        self.accept("escape-up", self.setKey, ["escape", 0])
        self.accept("wheel_up", self.zoomCamera, [-1])
        self.accept("wheel_down", self.zoomCamera, [1])

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

        ######### GUI #########

        #self.fonts = {"failure" : loader.loadFont('myfont.ttf')}

        self.guiElements = []

        self._GCLK = None
        self._FT = None
예제 #39
0
파일: main.py 프로젝트: LBdN/labs
 def resizeEvent(self, evt):
    wp = WindowProperties()
    wp.setSize(self.width(), self.height())
    wp.setOrigin(self.x(),self.y())
    base.win.requestProperties(wp)
예제 #40
0
class Renderer(ShowBase):
    _x = 0
    _y = 0
    _width = 400
    _height = 300

    _windowPropertices = None
    _drawTask = None

    def __init__(self, winId):
        ShowBase.__init__(self)

        self.bindToWindow(winId)
        self.setOrbitCameraControl()

        taskMng = TaskManager.Instance()
        timerIndex = taskMng.addTask(self.step)
        task       = taskMng.getTask(timerIndex)
        self._drawTask = task

        base.disableMouse() # disable default mouse controls

        # a scene
        # environ = self.loader.loadModel('environment')
        # environ.setScale(0.1)
        # environ.setZ(-5)
        # environ.reparentTo(self.render)

        # model for the camera to orbit along
        model = self.loader.loadModel('data/tank')
        model.reparentTo(self.render)
        model.setRenderModeWireframe()

        # dummy node for camera, we will rotate the dummy node fro camera rotation
        self.parentnode = self.render.attachNewNode('camparent')
        self.parentnode.reparentTo(model) # inherit transforms
        self.parentnode.setEffect(CompassEffect.make(self.render)) # NOT inherit rotation

        # the camera
        base.camera.reparentTo(self.parentnode)
        base.camera.lookAt(self.parentnode)
        base.camera.setY(-10) # camera distance from model

        # self.model = self.loader.loadModel('tank')
        # self.model.reparentTo(self.render)
        # self.model.setRenderModeWireframe()
        # self.camera.lookAt(self.model)
        # self.camera.setY(-10)

        # self.accept("escape", sys.exit)

        # self.taskMgr.add(self.spinCameraTask, "SpinCameraTask")

    # Define a procedure to move the camera.
    def spinCameraTask(self, task):
        angleDegrees = task.time * 30.0
        angleRadians = angleDegrees * (math.pi / 180.0)
        self.camera.setPos(10 * math.sin(angleRadians), -10.0 * math.cos(angleRadians), 0)
        self.camera.setHpr(angleDegrees, 0, 0)
        return task.cont

    def step(self):
        self.taskMgr.step()

    def bindToWindow(self, windowHandle):
        self._windowPropertices = WindowProperties().getDefault()
        self._windowPropertices.setOrigin(self._x, self._y)
        self._windowPropertices.setSize(self._width, self._height)
        self._windowPropertices.setParentWindow(windowHandle)
        base.openDefaultWindow(props=self._windowPropertices)

    def setWindowOrigin(self, x, y):
        self._x = x
        self._y = y

        self._windowPropertices.setOrigin(self._x, self._y)
        base.openDefaultWindow(props=self._windowPropertices)

    def setWindowSize(self, width, height):
        self._width = width
        self._height = height

        self._windowPropertices.setSize(self._width, self._height)
        base.openDefaultWindow(props=self._windowPropertices)

    def getWindowOrigin(self):
        return {"x": self._x, "y": self._y}

    def getWindowSize(self):
        return {"width": self._width, "height": self._height}


    def setOrbitCameraControl(self):
        pass
        oc = OrbitCamera(self, base)

    def startDraw(self):
        self._drawTask.start(0)

    def stopDraw(self):
        self._drawTask.stop()