Beispiel #1
0
class Explosion:
    def __init__(self, base):
        self.base = base
        self.p = Particles()
        self.p.setFactory("PointParticleFactory")
        self.p.setRenderer("LineParticleRenderer")
        self.p.setEmitter("SphereSurfaceEmitter")
        self.p.setPoolSize(256)
        self.p.setBirthRate(0.01)
        self.p.setLitterSize(256)
        self.p.setSystemLifespan(2)
        self.p.factory.setLifespanBase(5.0000)
        self.p.renderer.setTailColor(Vec4(1.0, 1.0, 0.0, 1.0))
        self.p.renderer.setHeadColor(Vec4(1.0, 0.0, 0.0, 1.0))
        self.p.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT)
        self.p.renderer.setUserAlpha(1.00)
        self.p.renderer.setLineScaleFactor(32.00)
        self.p.emitter.setRadius(2.0000)
        self.p.setRenderParent(base.render)
        self.p.enable()
        self.pn = base.render.attachNewNode("particleExpNode")
        # self.pn.setDepthWrite(False)
        # self.pn.setBin("fixed", 0)
        self.pe = ParticleEffect("exp-effect", self.p)
        self.pe.reparentTo(self.pn)
        self.pe.enable()
Beispiel #2
0
    def __init__(self):
        ParticleEffect.__init__(self)

        self.reset()
        self.setPos(0.000, 0.000, 0.000)
        self.setHpr(0.000, 0.000, 0.000)
        self.setScale(1.000, 1.000, 1.000)
        p0 = Particles('particles-1')
        # Particles parameters
        p0.setFactory("PointParticleFactory")
        p0.setRenderer("SpriteParticleRenderer")
        p0.setEmitter("SphereVolumeEmitter")
        p0.setPoolSize(1024)
        p0.setBirthRate(0.0200)
        p0.setLitterSize(1)
        p0.setLitterSpread(0)
        p0.setSystemLifespan(0.0000)
        p0.setLocalVelocityFlag(1)
        p0.setSystemGrowsOlderFlag(0)
        # Factory parameters
        p0.factory.setLifespanBase(3.0000)
        p0.factory.setLifespanSpread(0.0000)
        p0.factory.setMassBase(1.0000)
        p0.factory.setMassSpread(0.0000)
        p0.factory.setTerminalVelocityBase(400.0000)
        p0.factory.setTerminalVelocitySpread(0.0000)
        # Point factory parameters
        # Renderer parameters
        p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER)
        p0.renderer.setUserAlpha(1.00)
        # Sprite parameters
        p0.renderer.addTextureFromFile('./image/particle.png')
        p0.renderer.setColor(Vec4(0.40, 0.40, 1.00, 0.50))
        p0.renderer.setXScaleFlag(0)
        p0.renderer.setYScaleFlag(0)
        p0.renderer.setAnimAngleFlag(0)
        p0.renderer.setInitialXScale(0.03000)
        p0.renderer.setFinalXScale(1.0000)
        p0.renderer.setInitialYScale(0.03000)
        p0.renderer.setFinalYScale(1.0000)
        p0.renderer.setNonanimatedTheta(0.0000)
        p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR)
        p0.renderer.setAlphaDisable(0)
        # Emitter parameters
        p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
        p0.emitter.setAmplitude(0.5000)
        p0.emitter.setAmplitudeSpread(0.0000)
        p0.emitter.setOffsetForce(Vec3(0.0000, 0.0000, 0.0000))
        p0.emitter.setExplicitLaunchVector(Vec3(1.0000, 0.0000, 0.0000))
        p0.emitter.setRadiateOrigin(Point3(0.0000, 0.0000, 0.0000))
        # Sphere Volume parameters
        p0.emitter.setRadius(0.0100)
        self.addParticles(p0)
        f0 = ForceGroup('force-1')
        # Force parameters
        force0 = LinearVectorForce(Vec3(0.0000, 0.0000, -1.0000), 3.0000, 0)
        force0.setVectorMasks(1, 1, 1)
        force0.setActive(1)
        f0.addForce(force0)
        self.addForceGroup(f0)
Beispiel #3
0
 def fire(self):
     
     self.fire = ParticleEffect()
     
     self.fire.reset()
     self.fire.setPos(0.000, 0.000, 0.000)
     self.fire.setHpr(0.000, 0.000, 0.000)
     self.fire.setScale(10.000, 10.000, 10.000)
     p0 = Particles('particles-1')
     # Particles parameters
     p0.setFactory("PointParticleFactory")
     p0.setRenderer("SpriteParticleRenderer")
     p0.setEmitter("DiscEmitter")
     p0.setPoolSize(1024)
     p0.setBirthRate(0.0200)
     p0.setLitterSize(10)
     p0.setLitterSpread(0)
     p0.setSystemLifespan(1200.0000)
     p0.setLocalVelocityFlag(1)
     p0.setSystemGrowsOlderFlag(0)
     # Factory parameters
     p0.factory.setLifespanBase(2.0000)
     p0.factory.setLifespanSpread(0.0000)
     p0.factory.setMassBase(1.0000)
     p0.factory.setMassSpread(0.0000)
     p0.factory.setTerminalVelocityBase(400.0000)
     p0.factory.setTerminalVelocitySpread(0.0000)
     # Point factory parameters
     # Renderer parameters
     p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT)
     p0.renderer.setUserAlpha(0.22)
     # Sprite parameters
     p0.renderer.addTextureFromFile('models/gamedev/sparkle.png')
     p0.renderer.setColor(Vec4(1.00, 1.00, 1.00, 1.00))
     p0.renderer.setXScaleFlag(1)
     p0.renderer.setYScaleFlag(1)
     p0.renderer.setAnimAngleFlag(0)
     p0.renderer.setInitialXScale(0.5000)
     p0.renderer.setFinalXScale(2.0000)
     p0.renderer.setInitialYScale(1.0000)
     p0.renderer.setFinalYScale(2.0000)
     p0.renderer.setNonanimatedTheta(0.0000)
     p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND)
     p0.renderer.setAlphaDisable(0)
     # Emitter parameters
     p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
     p0.emitter.setAmplitude(1.0000)
     p0.emitter.setAmplitudeSpread(0.0000)
     p0.emitter.setOffsetForce(Vec3(0.0000, 0.0000, 3.0000))
     p0.emitter.setExplicitLaunchVector(Vec3(1.0000, 0.0000, 0.0000))
     p0.emitter.setRadiateOrigin(Point3(0.0000, 0.0000, 0.0000))
     # Disc parameters
     p0.emitter.setRadius(0.5000)
     self.fire.addParticles(p0)
     
     self.fire.setPos(self.playerModel2.getPos())
     
     t = Sequence(Func(self.fire.start, render, render),Wait(20),Func(self.cleanFire))
     t.start()
Beispiel #4
0
 def __init__(self):
     ParticleEffect.__init__(self)
     
     self.reset()
     self.setPos(0.000, 0.000, 0.000)
     self.setHpr(0.000, 0.000, 0.000)
     self.setScale(1.000, 1.000, 1.000)
     p0 = Particles('particles-1')
     # Particles parameters
     p0.setFactory("ZSpinParticleFactory")
     p0.setRenderer("SpriteParticleRenderer")
     p0.setEmitter("LineEmitter")
     p0.setPoolSize(1024)
     p0.setBirthRate(0.3000)
     p0.setLitterSize(1)
     p0.setLitterSpread(0)
     p0.setSystemLifespan(0.0000)
     p0.setLocalVelocityFlag(0)
     p0.setSystemGrowsOlderFlag(0)
     # Factory parameters
     p0.factory.setLifespanBase(15.0000)
     p0.factory.setLifespanSpread(0.0000)
     p0.factory.setMassBase(1.0000)
     p0.factory.setMassSpread(0.0000)
     p0.factory.setTerminalVelocityBase(400.0000)
     p0.factory.setTerminalVelocitySpread(0.0000)
     # Z Spin factory parameters
     p0.factory.setInitialAngle(0.0000)
     p0.factory.setInitialAngleSpread(0.0000)
     p0.factory.enableAngularVelocity(1)
     p0.factory.setAngularVelocity(60.0000)
     p0.factory.setAngularVelocitySpread(10.0000)
     # Renderer parameters
     p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER)
     p0.renderer.setUserAlpha(0.20)
     # Sprite parameters
     p0.renderer.addTextureFromFile('./image/star_particle.png')
     p0.renderer.setColor(Vec4(1.00, 1.00, 1.00, 1.00))
     p0.renderer.setXScaleFlag(0)
     p0.renderer.setYScaleFlag(0)
     p0.renderer.setAnimAngleFlag(1)
     p0.renderer.setInitialXScale(0.0500)
     p0.renderer.setInitialYScale(0.0500)
     p0.renderer.setNonanimatedTheta(0.0000)
     p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR)
     p0.renderer.setAlphaDisable(0)
     # Emitter parameters
     p0.emitter.setEmissionType(BaseParticleEmitter.ETEXPLICIT)
     p0.emitter.setAmplitude(0.1500)
     p0.emitter.setAmplitudeSpread(0.0500)
     p0.emitter.setOffsetForce(Vec3(0.0000, 0.0000, 0.0000))
     p0.emitter.setExplicitLaunchVector(Vec3(0.0000, 0.0000, -1.0000))
     p0.emitter.setRadiateOrigin(Point3(0.0000, 0.0000, 0.0000))
     # Line parameters
     p0.emitter.setEndpoint1(Point3(-1.0000, 0.0000, 0.0000))
     p0.emitter.setEndpoint2(Point3(1.0000, 0.0000, 0.0000))
     self.addParticles(p0)
Beispiel #5
0
 def load_particle_config(self):
     self.particles = ParticleEffect()
     self.particles.reset()
     self.particles.setPos(0.000, 0.000, 0.000)
     self.particles.setHpr(0.000, 0.000, 0.000)
     self.particles.setScale(1.000, 1.000, 1.000)
     p0 = Particles('particles-1')
     # Particles parameters
     p0.setFactory("PointParticleFactory")
     p0.setRenderer("SpriteParticleRenderer")
     p0.setEmitter("SphereVolumeEmitter")
     p0.setPoolSize(20)
     p0.setBirthRate(0.0100)
     p0.setLitterSize(20)
     p0.setLitterSpread(0)
     p0.setSystemLifespan(1.0100)
     p0.setLocalVelocityFlag(1)
     p0.setSystemGrowsOlderFlag(1)
     # Factory parameters
     p0.factory.setLifespanBase(1.0000)
     p0.factory.setLifespanSpread(0.0000)
     p0.factory.setMassBase(1.0000)
     p0.factory.setMassSpread(0.0100)
     p0.factory.setTerminalVelocityBase(1200.0000)
     p0.factory.setTerminalVelocitySpread(0.0000)
     # Point factory parameters
     # Renderer parameters
     p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT)
     p0.renderer.setUserAlpha(0.05)
     # Sprite parameters
     p0.renderer.setTexture(self.app.loader.loadTexture('effects/dust.png'))
     p0.renderer.setColor(Vec4(1.00, 0.10, 0.10, 0.50))
     p0.renderer.setXScaleFlag(2)
     p0.renderer.setYScaleFlag(2)
     p0.renderer.setAnimAngleFlag(0)
     p0.renderer.setInitialXScale(0.100 * self.level)
     p0.renderer.setFinalXScale(0.200 * self.level)
     p0.renderer.setInitialYScale(0.100 * self.level)
     p0.renderer.setFinalYScale(0.200 * self.level)
     p0.renderer.setNonanimatedTheta(0.0000)
     p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR)
     p0.renderer.setAlphaDisable(0)
     # Emitter parameters
     p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
     p0.emitter.setAmplitude(1.0000)
     p0.emitter.setAmplitudeSpread(0.0000)
     p0.emitter.setOffsetForce(Vec3(0.0000, 0.0000, 0.0000))
     p0.emitter.setExplicitLaunchVector(Vec3(1.0000, 0.0000, 0.0000))
     p0.emitter.setRadiateOrigin(Point3(0.0000, 0.0000, 0.0000))
     # Sphere Volume parameters
     p0.emitter.setRadius(0.1000)
     self.particles.addParticles(p0)
     f0 = ForceGroup('gravity')
     # Force parameters
     self.particles.addForceGroup(f0)
Beispiel #6
0
    def buildMainMenu(self):

        self.toggleCursor(False)

        start_game_button = DirectButton(text="Start", scale=.1, command=None)
        select_level_button = DirectButton(text="Select Level",
                                           scale=.1,
                                           command=None)
        game_options_button = DirectButton(text="Settings",
                                           scale=.1,
                                           command=None)
        exit_button = DirectButton(text="Exit", scale=.1, command=exit)

        BUTTON_SPACING = .2
        BUTTON_HEIGHT = start_game_button.getSy()

        button_positions = self.evenButtonPositions(BUTTON_SPACING,
                                                    BUTTON_HEIGHT, 4)

        start_game_button.setPos(Vec3(0, 0, button_positions[0]))
        select_level_button.setPos(Vec3(0, 0, button_positions[1]))
        game_options_button.setPos(Vec3(0, 0, button_positions[2]))
        exit_button.setPos(Vec3(0, 0, button_positions[3]))

        self.guiElements.append(start_game_button)
        self.guiElements.append(select_level_button)
        self.guiElements.append(game_options_button)
        self.guiElements.append(exit_button)

        particles = Particles()
        particles.setPoolSize(1000)
        particles.setBirthRate(.1)
        particles.setLitterSize(10)
        particles.setLitterSpread(3)
        particles.setFactory("PointParticleFactory")
        particles.setRenderer("PointParticleRenderer")
        particles.setEmitter("SphereVolumeEmitter")
        particles.enable()

        self.effect = ParticleEffect("peffect", particles)
        self.effect.reparentTo(render)
        #self.effect.setPos(self.avatar.objectNP.getX(), self.avatar.objectNP.getY(), self.avatar.objectNP.getZ() + 5)
        self.effect.setPos(-1, 0, 0)
        self.effect.enable()
Beispiel #7
0
    def __init__(self):
        ShowBase.__init__(self)

        self.enableParticles()

        particles = Particles()
        particles.setPoolSize(1000)
        particles.setBirthRate(0.1)
        particles.setLitterSize(10)
        particles.setLitterSpread(3)
        particles.setFactory("PointParticleFactory")
        particles.setRenderer("GeomParticleRenderer")
        particles.setEmitter("SphereVolumeEmitter")

        smiley = loader.loadModel("smiley")
        smiley.setScale(0.1)
        particles.getRenderer().setGeomNode(smiley.node())
        particles.enable()

        self.effect = ParticleEffect("peffect", particles)
        self.effect.reparentTo(render)
        self.effect.enable()

        self.cam.setPos(0, -10, 0)
Beispiel #8
0
    def explode(self,cEntry):

        self.explosion = ParticleEffect()
        
        self.explosion.reset()
        self.explosion.setPos(cEntry.getIntoNodePath().getParent().getPos())
        self.explosion.setHpr(0.000, 0.000, 0.000)
        self.explosion.setScale(10.000, 10.000, 10.000)
        p0 = Particles('particles-1')
        # Particles parameters
        p0.setFactory("PointParticleFactory")
        p0.setRenderer("LineParticleRenderer")
        p0.setEmitter("SphereVolumeEmitter")
        p0.setPoolSize(10000)
        p0.setBirthRate(0.0500)
        p0.setLitterSize(10000)
        p0.setLitterSpread(0)
        p0.setSystemLifespan(2.0000)
        p0.setLocalVelocityFlag(1)
        p0.setSystemGrowsOlderFlag(1)
        # Factory parameters
        p0.factory.setLifespanBase(2.0000)
        p0.factory.setLifespanSpread(0.0000)
        p0.factory.setMassBase(.5000)
        p0.factory.setMassSpread(0.0500)
        p0.factory.setTerminalVelocityBase(400.0000)
        p0.factory.setTerminalVelocitySpread(0.0000)
        # Point factory parameters
        # Renderer parameters
        p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT)
        p0.renderer.setUserAlpha(1.00)
        # Line parameters
        p0.renderer.setHeadColor(Vec4(1.00, 0.00, 0.00, 1.00))
        p0.renderer.setTailColor(Vec4(1.00, 1.00, 0.00, 1.00))
        p0.renderer.setLineScaleFactor(3.00)
        # Emitter parameters
        p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
        p0.emitter.setAmplitude(10.0000)
        p0.emitter.setAmplitudeSpread(0.0000)
        p0.emitter.setOffsetForce(Vec3(0.0000, 0.0000, -0.4930))
        p0.emitter.setExplicitLaunchVector(Vec3(1.0000, 0.0000, 0.0000))
        p0.emitter.setRadiateOrigin(Point3(0.0000, 0.0000, 0.0000))
        # Sphere Volume parameters
        p0.emitter.setRadius(0.5000)
        self.explosion.addParticles(p0)
        f0 = ForceGroup('gravity')
        # Force parameters
        self.explosion.addForceGroup(f0)
        
	cHandler = CollisionHandlerEvent()
	cHandler.addInPattern('%fn-into-%in')
	cSphereB = CollisionSphere(cEntry.getIntoNodePath().getParent().getPos(),1)
	cNodeB = CollisionNode("explosion")
	cNodeB.addSolid(cSphereB)
	cNodePathB = self.explosion.attachNewNode(cNodeB)
	self.cTrav.addCollider(cNodePathB,cHandler)
	cNodePathB.show()
        
	self.accept("player1-into-explosion",self.player2Wins)
	self.accept("player2-into-explosion",self.player1Wins)
        #f.reparentTo(self.playerModel)
        #self.explosion.setPos(self.playerModel.getPos())

        t = Sequence(Func(self.explosion.start, render, render),Wait(2),Func(self.cleanExplo))
        t.start()
	cEntry.getFromNodePath().getParent().removeNode()