📄 particlefxdemo.py
字号:
import localogre as ogre
import sampleframework
class ParticleApplication(sampleframework.Application):
def _createScene( self ):
sceneManager = self.sceneManager
camera = self.camera
sceneManager.setAmbientLight( ogre.ColourValue(0.5, 0.5, 0.5) )
entity = sceneManager.createEntity( ogre.String('head'), ogre.String('ogrehead.mesh') )
entity.setMaterialName( ogre.String('Examples/EnvMappedRustySteel') )
sceneManager.getRootSceneNode().createChildSceneNode( ogre.Vector3.ZERO,
ogre.Quaternion.IDENTITY ).attachObject(entity)
particleSystemManager = ogre.ParticleSystemManager.getSingleton()
particuleSystem1 = particleSystemManager.createSystem( ogre.String('Nimbus'),
ogre.String('Examples/GreenyNimbus') )
sceneManager.getRootSceneNode().createChildSceneNode( ogre.Vector3.ZERO,
ogre.Quaternion.IDENTITY ).attachObject(particuleSystem1)
self.fountainNode = sceneManager.getRootSceneNode().createChildSceneNode( ogre.Vector3.ZERO,
ogre.Quaternion.IDENTITY )
particuleSystem2 = particleSystemManager.createSystem( ogre.String('fountain1'),
ogre.String('Examples/PurpleFountain') )
node = self.fountainNode.createChildSceneNode( ogre.Vector3.ZERO, ogre.Quaternion.IDENTITY )
node.translate( 200,-100,0, ogre.Node.TransformSpace.TS_PARENT )
node.rotate( ogre.Vector3.UNIT_Z, 20, ogre.Node.TransformSpace.TS_LOCAL )
node.attachObject( particuleSystem2 )
particuleSystem3 = particleSystemManager.createSystem( ogre.String('fountain2'),
ogre.String('Examples/PurpleFountain') )
node = self.fountainNode.createChildSceneNode( ogre.Vector3.ZERO, ogre.Quaternion.IDENTITY )
node.translate( -200,-100,0, ogre.Node.TransformSpace.TS_PARENT )
node.rotate( ogre.Vector3.UNIT_Z, -20, ogre.Node.TransformSpace.TS_LOCAL )
node.attachObject( particuleSystem3 )
particuleSystem4 = particleSystemManager.createSystem( ogre.String('rain'),
ogre.String('Examples/Rain') )
node = sceneManager.getRootSceneNode().createChildSceneNode( ogre.Vector3.ZERO,
ogre.Quaternion.IDENTITY )
node.translate( 0,1000,0, ogre.Node.TransformSpace.TS_PARENT )
node.attachObject( particuleSystem4 )
particuleSystem4.fastForward( 5 )
def _createFrameListener( self ):
self.frameListener = ParticleListener( self.renderWindow, self.camera, self.fountainNode )
self.root.addFrameListener( self.frameListener )
class ParticleListener(sampleframework.FrameListener):
def __init__( self, renderWindow, camera, fountainNode ):
sampleframework.FrameListener.__init__( self, renderWindow, camera )
self.fountainNode = fountainNode
def frameStarted( self, frameEvent ):
self.fountainNode.yaw( frameEvent.timeSinceLastFrame * 30.0, ogre.Node.TransformSpace.TS_LOCAL )
return sampleframework.FrameListener.frameStarted( self, frameEvent )
if __name__ == '__main__':
application = ParticleApplication()
application.go()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -