PyOgre Tutorial4

Particle Demo

http://www.ogre3d.org/wiki/index.php/Image:Pyogre4.JPG

   1 # This code is in the Public Domain
   2 import pyogre.ogre as ogre
   3 import SampleFramework as sf
   4 
   5 class ParticleApplication(sf.Application):
   6     def _createScene(self):
   7         sceneManager = self.sceneManager
   8         camera = self.camera
   9 
  10         sceneManager.ambientLight = (0.5, 0.5, 0.5)
  11         entity = sceneManager.createEntity('head', 'ogrehead.mesh')
  12         entity.setMaterialName('Examples/EnvMappedRustySteel')
  13         sceneManager.rootSceneNode.createChildSceneNode().attachObject(entity)
  14         particleSystemManager = ogre.ParticleSystemManager.getSingleton()
  15         particleSystem1 = particleSystemManager.createSystem('Nimbus', 'Examples/GreenyNimbus')
  16         sceneManager.rootSceneNode.createChildSceneNode().attachObject(particleSystem1)
  17         self.fountainNode = sceneManager.rootSceneNode.createChildSceneNode()
  18         particleSystem2 = particleSystemManager.createSystem('fountain1', 'Examples/PurpleFountain')
  19         node = self.fountainNode.createChildSceneNode()
  20         node.translate(200, -100, 0)
  21         node.rotate((0, 0, -1), ogre.Radian(ogre.Degree(20)))
  22         node.attachObject(particleSystem2)
  23         particleSystem3 = particleSystemManager.createSystem('fountain2', 'Examples/PurpleFountain')
  24         node = self.fountainNode.createChildSceneNode()
  25         node.translate(-200, -100, 0)
  26         node.rotate((0, 0, -1), ogre.Radian(ogre.Degree(-20)))
  27         node.attachObject(particleSystem3)
  28         particleSystem4 = particleSystemManager.createSystem('rain', 'Examples/Rain')
  29         node = sceneManager.rootSceneNode.createChildSceneNode()
  30         node.translate(0, 1000, 0)
  31         node.attachObject(particleSystem4)
  32         particleSystem4.fastForward(5)
  33     def _createFrameListener(self):
  34         self.frameListener = ParticleListener(self.renderWindow, self.camera, self.fountainNode)
  35         self.root.addFrameListener(self.frameListener)
  36 
  37 class ParticleListener(sf.FrameListener):
  38     def __init__(self, renderWindow, camera, fountainNode):
  39         sf.FrameListener.__init__(self, renderWindow, camera)
  40         self.fountainNode = fountainNode
  41     def frameStarted(self, frameEvent):
  42         self.fountainNode.yaw(ogre.Radian(ogre.Degree(frameEvent.timeSinceLastFrame * 30.0)))
  43         return sf.FrameListener.frameStarted(self, frameEvent)
  44 
  45 if __name__ == '__main__':
  46     application = ParticleApplication()
  47     application.go()


Torna alla pagina precedente (Pagina 3),

PyOgreTutorial


CategoryDocumentazione

PyOgreTutorial/TutorialPag4 (last edited 2008-01-03 13:51:17 by IacoPy)