| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- from panda3d.core import NodePath, Vec3
- from panda3d.physics import LinearVectorForce
- from direct.particles import ParticleEffect
- from direct.particles import Particles
- from direct.particles import ForceGroup
- class ParticleFloorTest(NodePath):
- def __init__(self):
- NodePath.__init__(self, "particleFloorTest")
- # Sort Order of Particles
- self.setDepthWrite(0)
- # Load Particle Effects
- self.f = ParticleEffect.ParticleEffect()
- self.f.reparentTo(self)
- self.p0 = Particles.Particles('particles-1')
- # Particles parameters
- self.p0.setFactory("PointParticleFactory")
- self.p0.setRenderer("PointParticleRenderer")
- self.p0.setEmitter("SphereVolumeEmitter")
- self.p0.setPoolSize(64)
- self.p0.setBirthRate(0.020)
- self.p0.setLitterSize(7)
- self.p0.setLitterSpread(2)
- self.p0.setSystemLifespan(0.0000)
- #self.p0.setLocalVelocityFlag(1)
- self.p0.setFloorZ(-1.0)
- self.p0.setSystemGrowsOlderFlag(0)
- # Factory parameters
- self.p0.factory.setLifespanBase(10.000)
- self.p0.factory.setLifespanSpread(0.50)
- self.p0.factory.setMassBase(1.80)
- self.p0.factory.setMassSpread(1.00)
- self.p0.factory.setTerminalVelocityBase(400.0000)
- self.p0.factory.setTerminalVelocitySpread(0.0000)
- self.f.addParticles(self.p0)
- f0 = ForceGroup.ForceGroup('frict')
- # Force parameters
- force0 = LinearVectorForce(Vec3(0., 0., -1.))
- force0.setActive(1)
- f0.addForce(force0)
- self.f.addForceGroup(f0)
- def start(self):
- self.f.enable()
- def test_ParticleFloorTest(base):
- base.enableParticles()
- pt = ParticleFloorTest()
- pt.reparentTo(base.render)
- pt.start()
- # base.camera.setY(-10.0)
|