PyOgre Tutorial4
From Ogre Wiki
Particle Demo
# This code is in the Public Domain
import pyogre.ogre as ogre
import SampleFramework as sf
class ParticleApplication(sf.Application):
def _createScene(self):
sceneManager = self.sceneManager
camera = self.camera
sceneManager.ambientLight = (0.5, 0.5, 0.5)
entity = sceneManager.createEntity('head', 'ogrehead.mesh')
entity.setMaterialName('Examples/EnvMappedRustySteel')
sceneManager.rootSceneNode.createChildSceneNode().attachObject(entity)
particleSystemManager = ogre.ParticleSystemManager.getSingleton()
particleSystem1 = particleSystemManager.createSystem('Nimbus', 'Examples/GreenyNimbus')
sceneManager.rootSceneNode.createChildSceneNode().attachObject(particleSystem1)
self.fountainNode = sceneManager.rootSceneNode.createChildSceneNode()
particleSystem2 = particleSystemManager.createSystem('fountain1', 'Examples/PurpleFountain')
node = self.fountainNode.createChildSceneNode()
node.translate(200, -100, 0)
node.rotate((0, 0, -1), ogre.Radian(ogre.Degree(20)))
node.attachObject(particleSystem2)
particleSystem3 = particleSystemManager.createSystem('fountain2', 'Examples/PurpleFountain')
node = self.fountainNode.createChildSceneNode()
node.translate(-200, -100, 0)
node.rotate((0, 0, -1), ogre.Radian(ogre.Degree(-20)))
node.attachObject(particleSystem3)
particleSystem4 = particleSystemManager.createSystem('rain', 'Examples/Rain')
node = sceneManager.rootSceneNode.createChildSceneNode()
node.translate(0, 1000, 0)
node.attachObject(particleSystem4)
particleSystem4.fastForward(5)
def _createFrameListener(self):
self.frameListener = ParticleListener(self.renderWindow, self.camera, self.fountainNode)
self.root.addFrameListener(self.frameListener)
class ParticleListener(sf.FrameListener):
def __init__(self, renderWindow, camera, fountainNode):
sf.FrameListener.__init__(self, renderWindow, camera)
self.fountainNode = fountainNode
def frameStarted(self, frameEvent):
self.fountainNode.yaw(ogre.Radian(ogre.Degree(frameEvent.timeSinceLastFrame * 30.0)))
return sf.FrameListener.frameStarted(self, frameEvent)
if __name__ == '__main__':
application = ParticleApplication()
application.go()
| PyOgre Tutorial |
|---|
|
PyOgre Beginner Tutorial: Beginner 1 - Beginner 2 - Beginner 3 - Beginner 4 - Beginner 5 PyOgre Tutorial: Page 1 - Page 2 - Page 3 - Page 4 Ogre Tutorials: Basic Tutorial 1 - Intermediate Tutorial 1 - Tutorial 1 See also: PyOgre - Ogre Tutorials - Artist Tutorials - Ogre Articles - Cookbook |

