From de5434a487aaa4be0dd99f9207c90654c2c023a6 Mon Sep 17 00:00:00 2001 From: Mike Goslin Date: Wed, 24 Jan 2001 23:22:20 +0000 Subject: [PATCH] *** empty log message *** --- direct/src/showbase/Particles.py | 25 ++++++++++++++----------- direct/src/tkpanels/ParticlePanel.py | 9 +++++++-- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/direct/src/showbase/Particles.py b/direct/src/showbase/Particles.py index f23f627ead..3c6cdaf8c3 100644 --- a/direct/src/showbase/Particles.py +++ b/direct/src/showbase/Particles.py @@ -58,7 +58,7 @@ class Particles(ParticleSystem.ParticleSystem): self.node = PhysicalNode.PhysicalNode() self.node.addPhysical(self) self.nodePath = hidden.attachNewNode(self.node) - #self.forceNode = ForceNode.ForceNode() + self.forceNode = ForceNode.ForceNode() self.integrator = LinearEulerIntegrator.LinearEulerIntegrator() @@ -68,6 +68,11 @@ class Particles(ParticleSystem.ParticleSystem): particleMgr.setFrameStepping(1) particleMgr.attachParticlesystem(self) + def cleanup(self): + """cleanup(self)""" + physicsMgr.removePhysical(self) + particleMgr.removeParticlesystem(self) + def setFactory(self, type): """setFactory(self, type)""" if (self.factoryType == type): @@ -99,20 +104,21 @@ class Particles(ParticleSystem.ParticleSystem): self.renderer.setPointSize(1.0) elif (type == "LineParticleRenderer"): self.renderer = LineParticleRenderer.LineParticleRenderer() - self.renderer.setHeadColor(Vec4(1.0, 1.0, 1.0, 1.0)) - self.renderer.setTailColor(Vec4(1.0, 1.0, 1.0, 1.0)) + self.renderer.setPointSize(1.0) elif (type == "GeomParticleRenderer"): self.renderer = GeomParticleRenderer.GeomParticleRenderer() elif (type == "SparkleParticleRenderer"): self.renderer = SparkleParticleRenderer.SparkleParticleRenderer() elif (type == "SpriteParticleRenderer"): self.renderer = SpriteParticleRenderer.SpriteParticleRenderer() + t = loader.loadTexture("I:/beta/toons/install/maps/evil_eye.rgb") + if (t == None): + print "Couldn't find default texture: evil_eye.rgb!" + return None + self.renderer.setTexture(t) else: print "unknown renderer type: %s" % type return None - #self.renderer.setAlphaMode( - #BaseParticleRenderer.BaseParticleRenderer.PRALPHAUSER) - #self.renderer.setUserAlpha(1.0) ParticleSystem.ParticleSystem.setRenderer(self, self.renderer) def setEmitter(self, type): @@ -144,15 +150,11 @@ class Particles(ParticleSystem.ParticleSystem): else: print "unknown emitter type: %s" % type return None - #self.emitter.setEmissionType( - #BaseParticleEmitter.BaseParticleEmitter.ETEXPLICIT) - #self.emitter.setExplicitLaunchVector(Vec3(-1.0, -1.0, 1.0)) - #self.emitter.setAmplitude(1.0) ParticleSystem.ParticleSystem.setEmitter(self, self.emitter) def __update(self, state): """update(self, state)""" - dt = globalClock.getDt() + dt = min(globalClock.getDt(), 0.1) physicsMgr.doPhysics(dt) particleMgr.doParticles(dt) return Task.cont @@ -163,6 +165,7 @@ class Particles(ParticleSystem.ParticleSystem): def start(self): """start(self)""" + self.stop() taskMgr.spawnTaskNamed(Task.Task(self.__update), 'update-particles') def stop(self): diff --git a/direct/src/tkpanels/ParticlePanel.py b/direct/src/tkpanels/ParticlePanel.py index e099dec6b0..f89a601859 100644 --- a/direct/src/tkpanels/ParticlePanel.py +++ b/direct/src/tkpanels/ParticlePanel.py @@ -799,6 +799,8 @@ class ParticlePanel(AppShell): elif isinstance(renderer, SpriteParticleRenderer): color = renderer.getColor() * 255.0 texture = renderer.getTexture() + if (texture != None): + self.rendererSpriteTexture = texture.getName() self.rendererSpriteXScale.set(renderer.getXScaleFlag()) self.rendererSpriteYScale.set(renderer.getYScaleFlag()) self.rendererSpriteAnimAngle.set(renderer.getAnimAngleFlag()) @@ -894,8 +896,11 @@ class ParticlePanel(AppShell): self.particles.renderer.setLifeScale(lScale) # Sprite # def setRendererSpriteTexture(self, event): - self.particles.renderer.setTexture( - self.rendererSpriteTexture.get()) + t = loader.loadTexture(self.rendererSpriteTexture.get()) + if (t != None): + self.particles.renderer.setTexture(t) + else: + print "Couldn't find rendererSpriteTexture" def toggleRendererSpriteXScale(self): self.particles.renderer.setXScaleFlag( self.rendererSpriteXScale.get())