Don't like ads? PRO users don't see any ads ;-)
Guest

Blz: intermediate_2.py

By: a guest on Oct 25th, 2011  |  syntax: Python  |  size: 2.73 KB  |  hits: 53  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/usr/bin/env python
  2. # This code is Public Domain.
  3. """Python-Ogre Intermediate Tutorial 02: Initial code """
  4.  
  5. import ogre.renderer.OGRE as ogre
  6. import ogre.gui.CEGUI as CEGUI
  7. import ogre.io.OIS as OIS
  8. import SampleFramework as sf
  9.  
  10. class MouseQueryListener(sf.FrameListener, OIS.MouseListener):
  11.         """A FrameListener class that handles basic user input."""
  12.  
  13.         def __init__(self, win, cam, sc, renderer):
  14.                 # Subclass any Python-Ogre class and you must call its constructor.
  15.                 sf.FrameListener.__init__(self, win, cam, True, True)
  16.                 OIS.MouseListener.__init__(self)
  17.  
  18.                 self.sceneManager = sc
  19.                 self.renderer = renderer
  20.                 self.camera = cam
  21.  
  22.                 self.Mouse.setEventCallback(self)
  23.  
  24.         def frameStarted(self, evt):
  25.                 return sf.FrameListener.frameStarted(self, evt)  
  26.  
  27.         def mouseMoved(self, evt):
  28.                 return True
  29.  
  30.         def mousePressed(self, evt, id):
  31.                 return True
  32.  
  33.         def mouseReleased(self, evt, id):
  34.                 return True
  35.  
  36.         def _processUnbufferedMouseInput(self,frameEvent):
  37.                 pass
  38.  
  39. class TutorialApplication(sf.Application):      
  40.         """Application class."""
  41.  
  42.         def _chooseSceneManager(self):
  43.                 self.sceneManager = self.root.createSceneManager(ogre.ST_EXTERIOR_CLOSE, 'TerrainSM')
  44.  
  45.         def _createScene(self):
  46.                 ## Set up a simple scene with terrain
  47.                 self.sceneManager.setAmbientLight((0.5, 0.5, 0.5))
  48.                 self.sceneManager.setSkyDome(True, "Examples/CloudySky", 5, 8)
  49.                
  50.                 self.sceneManager.setWorldGeometry("terrain.cfg")
  51.                
  52.                 self.camera.setPosition(40, 100, 580)
  53.                 self.camera.pitch(ogre.Degree(-30))
  54.                 self.camera.yaw(ogre.Degree(-45))
  55.                
  56.                 if CEGUI.Version__.startswith("0.6"):
  57.                         CEGUI.SchemeManager.getSingleton().loadScheme("TaharezLookSkin.scheme")
  58.                         self.ceguiRenderer = CEGUI.OgreCEGUIRenderer(self.renderWindow,
  59.                                                                                                         ogre.RENDER_QUEUE_OVERLAY, False, 3000, sceneManager
  60.                                                                                                         )
  61.                 else:
  62.                         self.ceguiRenderer = CEGUI.OgreRenderer.bootstrapSystem()
  63.                         self.system = CEGUI.System.getSingleton()
  64.                         CEGUI.SchemeManager.getSingleton().create("TaharezLookSkin.scheme")
  65.                        
  66.                 self.system.setDefaultMouseCursor("TaharezLook", "MouseArrow")
  67.                        
  68.                 # Set up the CEGUI renderer
  69.                 # self.ceguiRenderer = CEGUI.OgreRenderer.bootstrapSystem()
  70.                 # self.ceguiSystem = CEGUI.System.getSingleton()
  71.                
  72.                 # Show mouse cursor
  73.                 # CEGUI.SchemeManager.getSingleton().create("TaharezLookSkin.scheme")
  74.                 # set default mouse image
  75.                 # CEGUI.System.getSingleton().setDefaultMouseCursor("TaharezLook", "MouseArrow")
  76.  
  77.         def _createFrameListener(self):
  78.                 self.frameListener = MouseQueryListener(self.renderWindow, self.camera, self.sceneManager, self.ceguiRenderer)
  79.  
  80.                 self.root.addFrameListener(self.frameListener)
  81.                 self.frameListener.showDebugOverlay(True)
  82.  
  83. if __name__ == '__main__':
  84.         ta = TutorialApplication()
  85.         ta.go()
  86.  
  87.