コード例 #1
0
    def __init__(self):
        #Standard title and instruction text
        self.title = OnscreenText(
            text="Panda3D: Tutorial - Particles",
            style=1, fg=(1,1,1,1), pos=(0.8,-0.95), scale = .07)
        self.escapeEvent = OnscreenText(
            text=HELPTEXT,
            style=1, fg=(1,1,1,1), pos=(-1.3, 0.95),
            align=TextNode.ALeft, scale = .05)

        #More standard initialization
        self.accept('escape', sys.exit)
        self.accept('1', self.loadParticleConfig , ['steam.ptf'])
        self.accept('2', self.loadParticleConfig , ['dust.ptf'])
        self.accept('3', self.loadParticleConfig , ['fountain.ptf'])
        self.accept('4', self.loadParticleConfig , ['smoke.ptf'])
        self.accept('5', self.loadParticleConfig , ['smokering.ptf'])
        self.accept('6', self.loadParticleConfig , ['fireish.ptf'])
        
        self.accept('escape', sys.exit)
        base.disableMouse()
        camera.setPos(0,-20,2)
        base.setBackgroundColor( 0, 0, 0 )

        #This command is required for Panda to render particles
        base.enableParticles()
        self.t = loader.loadModel("models/teapot")
        self.t.setPos(0,10,0)
        self.t.reparentTo(render)
        self.setupLights()
        self.p = ParticleEffect()
        self.loadParticleConfig('steam.ptf')
コード例 #2
0
ファイル: vfx_loader.py プロジェクト: FelixBucket/koparka
def createEffect(values):
    p = ParticleEffect()
    loadValues(values, p)
    color_gradient=loader.loadTexture(values["color_gradient"])
    size_gradient=loader.loadTexture(values["size_gradient"])
    shape_gradient=loader.loadTexture(values["shape_gradient"])    
    blend_gradient=loader.loadTexture("data/blend.png", minfilter=Texture.FTNearest, magfilter=Texture.FTNearest)
    color_gradient.setWrapU(Texture.WMClamp)
    color_gradient.setWrapV(Texture.WMClamp)
    size_gradient.setWrapU(Texture.WMClamp)
    size_gradient.setWrapV(Texture.WMClamp)
    shape_gradient.setWrapU(Texture.WMClamp)
    shape_gradient.setWrapV(Texture.WMClamp)
    blend_gradient.setWrapU(Texture.WMClamp)
    blend_gradient.setWrapV(Texture.WMClamp)
    for geom in p.findAllMatches('**/+GeomNode'):       
        geom.setDepthWrite(False)
        geom.setBin("transparent", 31)
        #need to hide it from the water and shadow camera now... I don't know hot to get the geom later :(
        geom.hide(BitMask32.bit(1))
        geom.hide(BitMask32.bit(2))
        geom.setShader(Shader.load(Shader.SLGLSL, "shaders/vfx_v.glsl","shaders/vfx_f.glsl"), 1)
        geom.setShaderInput('distortion',0.9)
        #geom.setShaderInput("fog",  Vec4(0.4, 0.4, 0.4, 0.002))
        geom.setShaderInput("color_gradient", color_gradient)
        geom.setShaderInput("size_gradient",  size_gradient)
        geom.setShaderInput("shape_gradient", shape_gradient)
        geom.setShaderInput("blend_gradient", blend_gradient)
    #p.start(parent=self.root, renderParent = render) 
    return p  
コード例 #3
0
def createEffectFromGradients(
        values, color_gradient, size_gradient, shape_gradient):
    p = ParticleEffect()
    loadValues(values, p)
    blend_gradient = loader.loadTexture(
        miscAssetPath + "/blend.png",
        minfilter=Texture.FTNearest, magfilter=Texture.FTNearest)
    color_gradient.setWrapU(Texture.WMClamp)
    color_gradient.setWrapV(Texture.WMClamp)
    size_gradient.setWrapU(Texture.WMClamp)
    size_gradient.setWrapV(Texture.WMClamp)
    shape_gradient.setWrapU(Texture.WMClamp)
    shape_gradient.setWrapV(Texture.WMClamp)
    blend_gradient.setWrapU(Texture.WMClamp)
    blend_gradient.setWrapV(Texture.WMClamp)
    for geom in p.findAllMatches('**/+GeomNode'):
        geom.setDepthWrite(False)
        geom.setBin("transparent", 31)
        geom.setShader(
            Shader.load(Shader.SLGLSL,
                shaderPath + "/vfx_v.glsl",
                shaderPath + "/vfx_f.glsl"), 1)
        geom.setShaderInput('distortion', 0.51)
        geom.setShaderInput("fog", Vec4(0.4, 0.4, 0.4, 0.002))
        geom.setShaderInput("color_gradient", color_gradient)
        geom.setShaderInput("size_gradient", size_gradient)
        geom.setShaderInput("shape_gradient", shape_gradient)
        geom.setShaderInput("blend_gradient", blend_gradient)
    return p
コード例 #4
0
ファイル: Global.py プロジェクト: UIKit0/Dota2War
def Water(self,model):
    p1 = ParticleEffect()
    p1.cleanup()
    p1 = ParticleEffect()
    p1.loadConfig(Filename(MYDIRPART+'fountain.ptf'))        
    p1.start(model)
    p1.setPos(3.000, 0.000, 2.250)
コード例 #5
0
    def __init__(self, name, fireType):
        NodePath.__init__(self, "fire" + str(name))
        NodePath.setPythonTag(self, "fireSystem", self)
        self.setScale(1, 1, 1)

        self.fire = ParticleEffect()
        self.fire.loadConfig('fire.ptf')
        try:
            file = open(fireType + ".txt")
            lines = file.readlines()
            newFireColor = LColor()
            colorLine = lines[0].split(",")
            for i in range(4):
                newFireColor[i] = float(colorLine[i])
            self.fire.getParticlesList()[0].getRenderer().setColor(
                newFireColor)
            self.lifeSpanSeconds = float(lines[1])
            file.close()
        except IOError:
            print("Firetype not found")

        self.lifeRemaining = self.lifeSpanSeconds
        fireSphere = CollisionSphere(0, 0, 1.25, 2.5)
        self.collisionNodeName = "fire{}Collision".format(self.id)
        fireCollisionNode = CollisionNode(self.collisionNodeName)
        fireCollisionNode.addSolid(fireSphere)
        self.collision = self.attachNewNode(fireCollisionNode)
        base.cTrav.addCollider(self.collision, base.handler)

        self.fire.start(self, self)
        self.fire.softStop()
        self.burn = taskMgr.add(self.burnTask, "burnTask")

        self.notifier = CollisionHandlerEvent
コード例 #6
0
ファイル: player.py プロジェクト: SilverMaple/Erosion-1.0
 def loadParticleConfig(self, filename):
     self.particle.cleanup()
     self.particle = ParticleEffect()
     self.particle.loadConfig(Filename(filename))
     self.particle.start(self.bullet)
     self.particle.setPos(0, 0, 0)
     self.particle.setScale(10)
コード例 #7
0
ファイル: engine.py プロジェクト: echo-devim/Avolition2
 def __init__(self, id, common, node, render, moneyamount=1):
     self.id = id
     self.common = common
     self.node = node
     self.message = None
     self.moneyamount = moneyamount
     self.object = Actor("models/object",
                         {'rotate': 'models/object-rotate'})
     self.object.setScale(0.20)
     self.object.setZ(1.5)
     self.object.reparentTo(render)
     self.object.loop("rotate")
     #Get last position of monster
     (x, y, z) = self.node.getPos()
     self.object.setPos((x, y, z + 0.5))
     base.enableParticles()
     #Load particles
     self.pe = ParticleEffect()
     self.pe.loadConfig(Filename("vfx/object.ptf"))
     self.pe.start(parent=self.object, renderParent=self.object)
     self.ambientLight = AmbientLight('ambientLight')
     self.ambientLight.setColor(VBase4(.3, .3, .3, 1))
     self.ambientLightNode = render.attachNewNode(self.ambientLight)
     self.object.setLight(self.ambientLightNode)
     taskMgr.doMethodLater(.1, self.update, 'random-object' + str(self.id))
コード例 #8
0
    def loadParticleConfig(self, filename, pos, object):
        self.p.cleanup()
        self.p = ParticleEffect()
        self.p.loadConfig(Filename(filename))

        self.p.start(object)
        self.p.setPos(pos)
コード例 #9
0
    async def loadScene(self, task):
        text = OnscreenText("Loading...")

        self.terrain = await loader.loadModel(models["terrain"],
                                              blocking=False)
        self.terrain.reparentTo(render)
        if USE_RENDER_PIPELINE:
            rp.prepare_scene(self.terrain)
        self.terrain.setScale(18)

        modelList = parseMissionFile(self.map)
        print(modelList)
        for model in modelList:
            try:
                m = loader.loadModel("models/" + model.modelName)
                m.reparentTo(self.terrain)
                m.setPos(*model.modelPos)
            except:
                #Its a particle system
                floater = render.attachNewNode("particle floater")
                floater.setPos(self.terrain, *model.particlePos)
                floater.setScale(5)
                self.particles = ParticleEffect()
                self.particles.loadConfig(model.ptfFile)
                print(model.particlePos)
                self.particles.start(parent=floater, renderParent=floater)
                #self.particles.setPos(*model.particlePos)

        #Once loaded, remove loading text
        text.hide()
        del text

        self.loaded = True
コード例 #10
0
ファイル: particles.py プロジェクト: PlumpMath/spanda3D
 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()
コード例 #11
0
 def attachTNT(self):
     self.detachTNT()
     self.tnt = Actor("phase_5/models/props/tnt-mod.bam",
                      {"chan": "phase_5/models/props/tnt-chan.bam"})
     self.tnt.reparentTo(self.avatar.find('**/def_joint_right_hold'))
     self.tntSparks = ParticleEffect()
     self.tntSparks.loadConfig("phase_5/etc/tnt.ptf")
コード例 #12
0
ファイル: dorf.py プロジェクト: ryancollingwood/dorfdelf
    def __init__(self, pos, world):
        self.id = next(Dorf.idgen)
        self.world = world
        self.node = loader.loadModel('media/models/dorfPH.egg')
        self.text = core.TextNode('dorf')
        self.text.setText('Dorf {}'.format(self.id))
        self.text.setAlign(core.TextNode.ACenter)
        self.text.setTextColor(1, 1, 0.5, 1)
        self.text.setShadow(0.1, 0.1)
        self.text.setShadowColor(0, 0, 0, 0.8)
        self.textnode = self.node.attachNewNode(self.text)
        self.textnode.setBillboardPointEye()
        self.textnode.setPos(0, 0, 1.1)
        self.textnode.setScale(0.4)
        self.textnode.setDepthWrite(False)
        self.textnode.setDepthTest(False)
        self.textnode.setShaderOff()
        self.x = int(pos.x)
        self.y = int(pos.y)
        self.z = 0
        self.next = None
        self.dir = (1, 0)

        taskMgr.doMethodLater(0.5, self.move, 'Move dorf')

        self.set_z(int(pos.z))
        self.node.setPos(pos.x, pos.y, 0)

        self.particles = ParticleEffect()
        self.particles.loadConfig('media/sparks.ptf')
        self.particles.reparentTo(self.node)
コード例 #13
0
ファイル: Global.py プロジェクト: UIKit0/Dota2War
def SmokeRing(self,model):
    p1 = ParticleEffect()
    p1.cleanup()
    p1 = ParticleEffect()
    p1.loadConfig(Filename(MYDIRPART+'smokering.ptf'))        
    p1.start(model)
    p1.setPos(0, 0.000, 0)
コード例 #14
0
def test_particle_burst_emission():
    effect = ParticleEffect()
    system = Particles("testSystem", 10)
    effect.add_particles(system)

    # Setup some dummy nodes, since it seems to want them
    # We might normally call "start", but that calls "enable", which
    # seems to assume that "base" exists and has physics and particle managers...
    system.setRenderParent(NodePath(PandaNode("test")))
    system.setSpawnRenderNodePath(NodePath(PandaNode("test")))
    # However, we don't want normal emission, so we now soft-stop it immediately,
    # before the system has a chance to update and emit.
    effect.softStop()

    # Now, a sanity-check: assert that we have no particles,
    # Then update the system, and assert again that we
    # have no particles. If so, then we're (hopefully)
    # not emitting normally!

    assert system.getLivingParticles() == 0
    system.update(1)
    assert system.getLivingParticles() == 0

    # Now, the real test: emit a particle-burst!
    effect.birthLitter()

    # And assert that a particle has, in fact, been emitted.
    assert system.getLivingParticles() == 1

    # Check the snake-case version, too.
    effect.birth_litter()

    assert system.getLivingParticles() == 2
コード例 #15
0
    def softStop(self):
        try:
            ParticleEffect.softStop(self)
        except:
            return

        self.__startCleanupTask()
コード例 #16
0
 def startInPos(self, pos, level, life=0):
     # self.reparentTo(scene.Base.render)
     #self.setPos(scene.Base.render,pos)
     ParticleEffect.start(self,parent=level.Base.render, renderParent=level.Base.render)
     self.setPos(pos)
     if life != 0:
         level.Base.taskMgr.doMethodLater(life, self.__cleanup, self.name + "+automaticCleanup")
コード例 #17
0
ファイル: Application.py プロジェクト: UnrealAI/UnrealAI
class Application(ShowBase):
    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)
コード例 #18
0
def createEffect(values):
    p = ParticleEffect()
    loadValues(values, p)
    color_gradient = loader.loadTexture(values["color_gradient"])
    size_gradient = loader.loadTexture(values["size_gradient"])
    shape_gradient = loader.loadTexture(values["shape_gradient"])
    blend_gradient = loader.loadTexture("data/vfx/blend.png",
                                        minfilter=Texture.FTNearest,
                                        magfilter=Texture.FTNearest)
    color_gradient.setWrapU(Texture.WMClamp)
    color_gradient.setWrapV(Texture.WMClamp)
    #color_gradient.setFormat(Texture.F_srgb_alpha)
    size_gradient.setWrapU(Texture.WMClamp)
    size_gradient.setWrapV(Texture.WMClamp)
    shape_gradient.setWrapU(Texture.WMClamp)
    shape_gradient.setWrapV(Texture.WMClamp)
    blend_gradient.setWrapU(Texture.WMClamp)
    blend_gradient.setWrapV(Texture.WMClamp)
    for geom in p.findAllMatches('**/+GeomNode'):
        geom.setDepthWrite(False)
        geom.hide(BitMask32.bit(1))
        geom.hide(BitMask32.bit(2))
        geom.setShader(
            Shader.load(Shader.SLGLSL, "data/shaders/vfx_v.glsl",
                        "data/shaders/vfx_f.glsl"), 1)
        geom.setShaderInput('distortion', values['distortion'])
        geom.setShaderInput("fog", Vec4(0.4, 0.4, 0.4, 0.002))
        geom.setShaderInput("color_gradient", color_gradient)
        geom.setShaderInput("size_gradient", size_gradient)
        geom.setShaderInput("shape_gradient", shape_gradient)
        geom.setShaderInput("blend_gradient", blend_gradient)
    p.start(parent=render, renderParent=render)
    return p
コード例 #19
0
ファイル: vfx_loader.py プロジェクト: wezu/koparka
def createEffect(values):
    p = ParticleEffect()
    loadValues(values, p)
    color_gradient = loader.loadTexture(values["color_gradient"])
    size_gradient = loader.loadTexture(values["size_gradient"])
    shape_gradient = loader.loadTexture(values["shape_gradient"])
    blend_gradient = loader.loadTexture("data/blend.png",
                                        minfilter=Texture.FTNearest,
                                        magfilter=Texture.FTNearest)
    color_gradient.setWrapU(Texture.WMClamp)
    color_gradient.setWrapV(Texture.WMClamp)
    color_gradient.setFormat(Texture.F_srgb_alpha)
    size_gradient.setWrapU(Texture.WMClamp)
    size_gradient.setWrapV(Texture.WMClamp)
    shape_gradient.setWrapU(Texture.WMClamp)
    shape_gradient.setWrapV(Texture.WMClamp)
    blend_gradient.setWrapU(Texture.WMClamp)
    blend_gradient.setWrapV(Texture.WMClamp)
    for geom in p.findAllMatches('**/+GeomNode'):
        geom.setDepthWrite(False)
        #geom.setBin("transparent", 31)
        #need to hide it from the water and shadow camera now... I don't know hot to get the geom later :(
        geom.hide(BitMask32.bit(1))
        geom.hide(BitMask32.bit(2))
        geom.setShader(
            Shader.load(Shader.SLGLSL, "shaders/vfx_v.glsl",
                        "shaders/vfx_f.glsl"), 1)
        geom.setShaderInput('distortion', values['distortion'])
        #geom.setShaderInput("fog",  Vec4(0.4, 0.4, 0.4, 0.002))
        geom.setShaderInput("color_gradient", color_gradient)
        geom.setShaderInput("size_gradient", size_gradient)
        geom.setShaderInput("shape_gradient", shape_gradient)
        geom.setShaderInput("blend_gradient", blend_gradient)
    #p.start(parent=self.root, renderParent = render)
    return p
コード例 #20
0
 def __createToonInterval(self, delay):
     track = Sequence(Wait(delay))
     sprayEffect = ParticleEffect()
     sprayEffect.loadConfig('phase_5/etc/soundWave.ptf')
     sprayEffect.setDepthWrite(0)
     sprayEffect.setDepthTest(0)
     sprayEffect.setTwoSided(1)
     I1 = 2.8
     track.append(
         ActorInterval(self.avatar,
                       'sound',
                       playRate=1.0,
                       startTime=0.0,
                       endTime=I1))
     track.append(
         Func(self.setPosFromOther, sprayEffect, self.gag,
              Point3(0, 1.6, -0.18)))
     track.append(
         self.__getPartTrack(sprayEffect,
                             0.0,
                             6.0, [sprayEffect, self.avatar, 0],
                             softStop=-3.5))
     track.append(
         ActorInterval(self.avatar, 'sound', playRate=1.0, startTime=I1))
     return track
コード例 #21
0
ファイル: balle.py プロジェクト: willDBZ/Tankem-phase-3
    def __init__(self, identifiantLanceur,mondePhysique):
        self.mondePhysique = mondePhysique
        self.lanceurId = identifiantLanceur
        self.balleId = Balle.balleID
        Balle.balleID += 1

        self.forceApplique = Vec3(0,0,0)

        # On charge le modèles
        self.modele = loader.loadModel("../asset/Balle/ball")
        self.modele.reparentTo(render)
        #On réduit sa taille un peu...
        self.modele.setScale(0.5,0.5,0.5)

        #On ajoute une sphere de physique
        forme = BulletSphereShape(0.2)
        noeud = BulletRigidBodyNode("Balle")
        noeud.addShape(forme)
        self.noeudPhysique = render.attachNewNode(noeud)
        self.noeudPhysique.node().setMass(1.0)
        self.modele.reparentTo(self.noeudPhysique)

        self.accept("detonateur-explosion",self.detonateurDistance)

        self.noeudPhysique.setTag("EntiteTankem","Balle")
        self.noeudPhysique.setTag("balleId",str(self.balleId))
        self.noeudPhysique.setTag("lanceurId",str(self.lanceurId))

        self.pftExplosion = ParticleEffect()
        self.pftExplosion.loadConfig("../asset/Particle/tankemExplode.ptf")

        self.pftRacine = NodePath("Racine pfx expolision")
        self.pftRacine.reparentTo(render)
コード例 #22
0
    def explode(self):
        self.ignoreAll()
        self.cNode.setIntoCollideMask(BitMask32.allOff())
        taskMgr.remove(self.moveTask)
        taskMgr.remove(self.mouseTask)
        taskMgr.remove(self.zoomTaskPointer)
        self.moveTask = 0
        self.mouseTask = 0

        if self.contrail != 0:
            self.contrail.cleanup()
        self.modelNode.hide()

        self.contrail = ParticleEffect()
        self.contrail.loadConfig('media/explosion.ptf')
        self.contrail.start(self.node)
        self.contrail.setLightOff()
        self.contrail2.cleanup()

        #add explosion sound
        #------------------------------------------------------------------------------
        self.audio3d = Audio3DManager.Audio3DManager(base.sfxManagerList[0],
                                                     base.camera)
        self.audio3d.setDropOffFactor(0.2)
        self.Sound = self.audio3d.loadSfx('explosion.mp3')
        self.audio3d.detachSound(self.Sound)
        self.audio3d.attachSoundToObject(self.Sound, self.node)
        #self.Sound.play()
        #------------------------------------------------------------------------------

        self.deleteTask = taskMgr.doMethodLater(4, self.deleteTask,
                                                'delete task')
コード例 #23
0
    def __init__(self, model, id_, y_positions, enemy_handler, class_data):
        EnemyMotorcyclist.__init__(self, id_, "Kamikaze", class_data, model,
                                   y_positions, enemy_handler)

        self._train_captured = False
        self._explosion_col_np = None
        self.is_jumping = False

        self._side = "left" if self._y_pos > 0 else "right"

        self._jump_path = Mopath.Mopath(
            objectToLoad=loader.loadModel(  # noqa: F821
                address(self._side[0] + "_kamikaze_jump")))
        self._jump_path.fFaceForward = True

        self._jump_snd = base.sound_mgr.loadSfx(
            "sounds/moto_jump.ogg")  # noqa: F821
        base.sound_mgr.attachSoundToObject(self._jump_snd,
                                           self.model)  # noqa: F821

        self._wick_snd = base.sound_mgr.loadSfx(
            "sounds/combat/wick.ogg")  # noqa: F821
        base.sound_mgr.attachSoundToObject(self._wick_snd,
                                           self.model)  # noqa: F821

        self._wick = ParticleEffect()

        self._fire_ring = ParticleEffect()
        self._fire_ring.loadConfig("effects/fire_ring.ptf")
        self._fire_ring.setZ(0.2)
コード例 #24
0
ファイル: Global.py プロジェクト: UIKit0/Dota2War
def Smoke(self,model):
    p1 = ParticleEffect()
    p1.cleanup()
    p1 = ParticleEffect()
    p1.loadConfig(Filename(MYDIRPART+'smoke.ptf'))        
    p1.start(model)
    p1.setPos(3.000, 0.000, 2.250)
コード例 #25
0
ファイル: particle.py プロジェクト: monicagraciela/MoonBunny
    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)
コード例 #26
0
ファイル: particleExplosion.py プロジェクト: crempp/psg
	def __init__(self):
		#sys.path.append('../game')
		#Standard title and instruction text
		self.title = OnscreenText(
			text="PSG: Test - Explosion",
			style=1, fg=(1,1,1,1), pos=(0.9,-0.95), scale = .07)
		self.escapeEvent = OnscreenText(
			text=HELPTEXT,
			style=1, fg=(1,1,1,1), pos=(-1.3, 0.95),
			align=TextNode.ALeft, scale = .05)

		#More standard initialization
		self.accept('escape', sys.exit)
		self.accept('1', self.loadParticleConfig , ['explosion1.ptf'])
		self.accept('2', self.loadParticleConfig , ['explosion2.ptf'])
		self.accept('3', self.loadParticleConfig , ['explosion3.ptf'])
		self.accept('4', self.loadParticleConfig , ['explosion4.ptf'])
		self.accept('5', self.loadParticleConfig , ['explosion5.ptf'])
		self.accept('6', self.loadParticleConfig , ['explosion6.ptf'])
		
		self.accept('escape', sys.exit)
		base.disableMouse()
		camera.setPos(0,-20,2)
		base.setBackgroundColor( 0, 0, 0 )

		#This command is required for Panda to render particles
		base.enableParticles()
		self.t = loader.loadModel("../data/models/ship_03.egg")
		self.t.setScale(0.5)
		self.t.setHpr(180, 0, 0)
		self.t.setPos(0,10,0)
		self.t.reparentTo(render)
		self.setupLights()
		self.p = ParticleEffect()
		self.loadParticleConfig('explosion1.ptf')
コード例 #27
0
    def __init__(self):
        self.node = 0  #the player main node
        self.gnodePath = 0  #node to phisics
        self.gNode = 0  #node of gravity
        self.gNodePath = 0  #node path to actorNode
        self.modelNode = 0  #the node of the actual model
        self.cNode = 0  #the player collision node attached to node
        self.cNodePath = 0  #node path to cNode
        self.contrail = ParticleEffect(
        )  #QUANDO BATE, CRIA EFEITO (LINHA DE BAIXO TB)
        self.contrail.setTransparency(TransparencyAttrib.MDual)
        self.contrail2 = ParticleEffect(
        )  #QUANDO ACIONA TURBO, CRIA EFEITO (LINHA DE BAIXO TB)
        self.contrail2.setTransparency(TransparencyAttrib.MDual)
        self.landing = False
        self.freeLook = False
        self.speed = 10
        self.speedMax = 100
        self.agility = 3
        self.HP = 10
        self.collisionHandler = CollisionHandlerEvent(
        )  # the collision handlers
        self.collisionHandlerQueue = CollisionHandlerQueue()
        self.zoom = -5
        #self

        self.textSpeed = OnscreenText(text='Speed: ' + str(self.speed),
                                      pos=(-1.34, 0.95),
                                      scale=0.07,
                                      fg=(1, 1, 1, 1),
                                      bg=(0.2, 0.2, 0.2, 0.4),
                                      align=TextNode.ALeft)
        self.textHP = OnscreenText(text='Health:    ' + str(self.HP),
                                   pos=(-1.33, 0.85),
                                   scale=0.07,
                                   fg=(1, 1, 1, 1),
                                   bg=(0.2, 0.2, 0.2, 0.4),
                                   align=TextNode.ALeft)
        self.roll = 0
        self.camHeight = 0

        base.win.movePointer(0,
                             base.win.getXSize() / 2,
                             base.win.getYSize() / 2)

        self.myImage = OnscreenImage(image='cursor.png',
                                     pos=(0, 0, -0.02),
                                     scale=(0.05))
        self.myImage.setTransparency(TransparencyAttrib.MAlpha)

        self.loadModel()
        self.addCamera()
        self.addEvents()
        self.addCollisions()
        self.addSound()

        self.moveTask = taskMgr.add(self.moveUpdateTask, 'move-task')
        self.mouseTask = taskMgr.add(self.mouseUpdateTask, 'mouse-task')
        self.zoomTaskPointer = taskMgr.add(self.zoomTask, 'zoom-task')
コード例 #28
0
ファイル: Global.py プロジェクト: UIKit0/Dota2War
def Flame(self,model):
    p1 = ParticleEffect()
    p1.cleanup()
    p1 = ParticleEffect()
    p1.loadConfig(Filename('ee.ptf'))#'fireish.ptf'))        
    p1.start(model)
    p1.setPos(3.000, 0.000, 2.250)
    setupLights(self,model)
コード例 #29
0
ファイル: particleExplosion.py プロジェクト: crempp/psg
	def loadParticleConfig(self,file):
		#Start of the code from steam.ptf
		self.p.cleanup()
		self.p = ParticleEffect()
		self.p.loadConfig(Filename(file))        
		#Sets particles to birth relative to the teapot, but to render at toplevel
		self.p.start(self.t)
		self.p.setPos(0.000, 0.000, 0.00)
コード例 #30
0
 def loadParticleConfig(self, filename):
     # Start of the code from steam.ptf
     self.p.cleanup()
     self.p = ParticleEffect()
     self.p.loadConfig(Filename(filename))
 
     self.p.start(self.t)
     self.p.setPos(3.000, 0.000, 2.250)
コード例 #31
0
ファイル: Gaivota.py プロジェクト: PlumpMath/gaivota
    def __init__(self):  #Class constructor
        self.node = 0  #the player main node
        self.modelNode = 0  #the node of the actual model
        self.cNode = 0  #the player collision node attached to node
        self.cNodePath = 0  #node path to cNode
        self.contrail = ParticleEffect(
        )  #QUANDO BATE, CRIA EFEITO (LINHA DE BAIXO TB)
        self.contrail.setTransparency(TransparencyAttrib.MDual)
        self.contrail2 = ParticleEffect(
        )  #QUANDO ACIONA TURBO, CRIA EFEITO (LINHA DE BAIXO TB)
        self.contrail2.setTransparency(TransparencyAttrib.MDual)
        self.landing = False
        self.freeLook = False
        self.speed = 70
        self.speedMax = 100
        self.agility = 5
        self.HP = 10
        self.collisionHandler = CollisionHandlerEvent(
        )  # the collision handlers
        self.collisionHandlerQueue = CollisionHandlerQueue()
        self.zoom = -5
        self.gnodePath = 0  #node to phisics
        self.gNode = 0  #node of gravity
        self.gNodePath = 0  #node path to actorNode
        self.msg = MessageManager()
        self.roll = 0
        self.camHeight = 0
        global actualScore
        global firstRun
        firstRun = 0
        self.thisScore = OnscreenText(text='Score: ' + str(actualScore),
                                      pos=(1.32, 0.95),
                                      scale=0.07,
                                      fg=(1, 1, 1, 1),
                                      bg=(0.2, 0.2, 0.2, 0.4),
                                      align=TextNode.ARight)
        self.death = 0

        self.ultimaColisao = "InicioUltimaColisao"
        self.atualColisao = "InicioAtualColisao"

        base.win.movePointer(0,
                             base.win.getXSize() / 2,
                             base.win.getYSize() / 2)
        self.myImage = OnscreenImage(image='cursor.png',
                                     pos=(0, 0, -0.02),
                                     scale=(0.05))
        self.myImage.setTransparency(TransparencyAttrib.MAlpha)

        self.loadModel()
        self.addCamera()
        self.addEvents()
        self.addCollisions()
        self.addSound()

        self.moveTask = taskMgr.add(self.moveUpdateTask, 'move-task')
        self.mouseTask = taskMgr.add(self.mouseUpdateTask, 'mouse-task')
        self.zoomTaskPointer = taskMgr.add(self.zoomTask, 'zoom-task')
コード例 #32
0
ファイル: explosion.py プロジェクト: colshag/ANW
 def createMyParticle(self, size):
     particle = ParticleEffect()
     smokeEffect = self.path + "smoke.ptf"
     particle.loadConfig(Filename(smokeEffect))
     p0 = particle.particlesDict['particles']
     p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.0))
     p0.factory.setLifespanBase(0.3 * size)
     p0.setPoolSize(200)
     return particle
コード例 #33
0
ファイル: particle.py プロジェクト: monicagraciela/MoonBunny
 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)
コード例 #34
0
ファイル: smoketrail.py プロジェクト: colshag/ANW
 def initialize(self):
     smokeEffect = self.warsim.path + "smoke.ptf"
     self.particle = ParticleEffect()
     self.particle.loadConfig(Filename(smokeEffect))
     self.litterMin = 1.0
     # rough estimate based on masses that are around 50000->120000.  gets the max litter down to 25 -> 60
     self.litterMax = self.warsim.myShip.mass / 2500.0
     self.litterSize = self.litterMin
     self.particleStarted = False
コード例 #35
0
    def __init__(self, parent=None, name=None):
        global PARTICLES_ENABLED
        if not PARTICLES_ENABLED:
            base.enableParticles()
            PARTICLES_ENABLED = True
        # define the name of this object
        VirtualNodeWrapper.__init__(self, parent, name,
                                    PARTICLE_WRAPPER_DUMMYOBJECT)

        self.particleSystem = ParticleEffect()
コード例 #36
0
def init_player(self, left_btn, right_btn, player_number ,pos=(0,0,0), heading=0):
    color = (configs.COLORS_MAP[player_number][0])

    nodePath = loadObject()
    nodePath.setPos(pos)
    nodePath.setScale(configs.SCALE*0.004)
    nodePath.setColor(color)

    p = ParticleEffect()
    p.loadConfig('textures/flare.ptf')
    p.start(parent = nodePath, renderParent = render)
    p0 = p.getParticlesList()[0]
    p0.emitter.setRadiateOrigin(Point3(0.05*cos(heading* pi/180), 0.0, 0.05*sin(heading* pi/180)))
    p.setPos(0,-1,0)
    # p.setBin("unsorted", 0)
    # p.setDepthTest(False)
    p.setTwoSided(True)

    text= TextNode('text') 
    text.setText(str("%s" % player_number))
    text.setTextColor(color)
    text.setAlign(TextNode.ACenter)
    # text.font = self.font
    text3d = NodePath(text) 
    text3d.setTwoSided(True)
    text3d.setPos(nodePath, -1,-3,-4)
    text3d.reparentTo(render)
    circle = loadObject(tex='circle.png')
    circle.reparentTo(render)
    circle.setPos(nodePath, 0,-2,0)
    text3d.setScale(0.13)
    circle.setScale(0.09)
    text3d.setColorScale(color)
    circle.setColorScale(color)


    new_line, line_vertex, line_node = start_new_line(self, pos[0], pos[2], color)
    line_id = configs.ENTITY_ID
    configs.ENTITIES[configs.ENTITY_ID] = {'CATEGORY':'line', 'GEOM':new_line, 'VERTEX':line_vertex, "NODE": line_node}
    configs.ENTITY_ID += 1
    speed = configs.FORWARD_SPEED
    right_angle = configs.FORCE_RIGHT_ANGLE_TURN
    # print left_btn
    # print right_btn
    self.accept(("%s" % left_btn),     player_controls, [configs.ENTITY_ID, 'TURN_LEFT', 1])
    self.accept(("%s-up" % left_btn),  player_controls, [configs.ENTITY_ID, 'TURN_LEFT', 0])
    self.accept(("%s" % right_btn),     player_controls, [configs.ENTITY_ID, 'TURN_RIGHT', 1])
    self.accept(("%s-up" % right_btn),  player_controls, [configs.ENTITY_ID, 'TURN_RIGHT', 0])

    configs.ENTITIES[configs.ENTITY_ID] = {'CATEGORY':'player','ALIVE':True, 'NODE':nodePath,'PARTICLE_PARENT':p, 'PARTICLE':p0, 
        'HEADING':heading, 'CURRENT_LINE':line_id, 'TICKNESS':configs.SCALE, 'TURN_LEFT':0, 'TURN_RIGHT':0, 'COLOR':color, 
        'PLAYER_ID':text3d, 'CIRCLE_NODE':circle, 'LEFT_ARMED':True, 'RIGHT_ARMED':True, 'PLAYER_NUMBER': player_number, 'SPEED':speed,
        'RIGHT_ANGLE_TURN':right_angle }
    configs.ENTITY_ID += 1
コード例 #37
0
class ParticleDemo(ShowBase):

    def __init__(self):
        ShowBase.__init__(self)

        # Standard title and instruction text
        self.title = OnscreenText(
            text="Panda3D: Tutorial - Particles",
            parent=base.a2dBottomCenter,
            style=1, fg=(1, 1, 1, 1), pos=(0, 0.1), scale=.08)
        self.escapeEvent = OnscreenText(
            text=HELP_TEXT, parent=base.a2dTopLeft,
            style=1, fg=(1, 1, 1, 1), pos=(0.06, -0.06),
            align=TextNode.ALeft, scale=.05)

        # More standard initialization
        self.accept('escape', sys.exit)
        self.accept('1', self.loadParticleConfig, ['steam.ptf'])
        self.accept('2', self.loadParticleConfig, ['dust.ptf'])
        self.accept('3', self.loadParticleConfig, ['fountain.ptf'])
        self.accept('4', self.loadParticleConfig, ['smoke.ptf'])
        self.accept('5', self.loadParticleConfig, ['smokering.ptf'])
        self.accept('6', self.loadParticleConfig, ['fireish.ptf'])

        self.accept('escape', sys.exit)
        base.disableMouse()
        base.camera.setPos(0, -20, 2)
        base.camLens.setFov(25)
        base.setBackgroundColor(0, 0, 0)

        # This command is required for Panda to render particles
        base.enableParticles()
        self.t = loader.loadModel("teapot")
        self.t.setPos(0, 10, 0)
        self.t.reparentTo(render)
        self.setupLights()
        self.p = ParticleEffect()
        self.loadParticleConfig('steam.ptf')

    def loadParticleConfig(self, filename):
        # Start of the code from steam.ptf
        self.p.cleanup()
        self.p = ParticleEffect()
        self.p.loadConfig(Filename(filename))
        # Sets particles to birth relative to the teapot, but to render at
        # toplevel
        self.p.start(self.t)
        self.p.setPos(3.000, 0.000, 2.250)

    # Setup lighting
    def setupLights(self):
        ambientLight = AmbientLight("ambientLight")
        ambientLight.setColor((.4, .4, .35, 1))
        directionalLight = DirectionalLight("directionalLight")
        directionalLight.setDirection(LVector3(0, 8, -2.5))
        directionalLight.setColor((0.9, 0.8, 0.9, 1))
        # Set lighting on teapot so steam doesn't get affected
        self.t.setLight(self.t.attachNewNode(directionalLight))
        self.t.setLight(self.t.attachNewNode(ambientLight))
コード例 #38
0
ファイル: world.py プロジェクト: Splime/ProjectThree
 def drain(self, task):
     if self.draining and task.time - self.drainTime > DRAIN_DELAY:
         carpos = self.staticCars[self.target].getPos()
         playerpos = self.player.getPos()
         dist = math.sqrt( (carpos[0] - playerpos[0])**2 + (carpos[1] - playerpos[1])**2 + (carpos[2] - playerpos[2])**2 )
         if self.gasList[self.target] > 0 and dist < DRAIN_DIST:
             if not self.gasPlaying:
                 self.gasP.reset()
                 self.gasP = ParticleEffect()  
                 self.gasP.loadConfig(Filename('oil.ptf'))        
                 self.gasP.start(self.player)
                 self.gasNode.lookAt(self.staticCars[self.target])
                 self.gasP.setPos(0,0,2)
                 self.gasP.setScale(1.5)
                 self.gasP.setLightOff()
                 self.gasPlaying = True
                 self.alan_var = False
             self.gasNode.lookAt(self.staticCars[self.target])
             self.gasP.setHpr(self.gasNode.getH() + 180, 90, 0)
             self.player.totalGas = self.player.totalGas + 1
             self.gasList[self.target] = self.gasList[self.target] - 1
         else:
             self.alan_var = True
         # print "TotalGas: " + str(self.player.totalGas)
         self.drainTime = task.time
     elif not self.draining or self.alan_var:
         self.gasP.softStop()
         self.drainSound.stop()
         self.gasPlaying = False
     return Task.cont
コード例 #39
0
ファイル: smoke_emitter.py プロジェクト: daFthawk/group-3
 def load_config(self, file_name):
     self.p.cleanup()
     self.p = ParticleEffect()
     self.p.loadConfig(file_name)
     self.p.start(render)
     self.p.setPos(self.x, self.y, self.z)
     self.p.reparentTo(self.parent)
コード例 #40
0
ファイル: PipeGeneric.py プロジェクト: kridily/fall_and_fix
 def addParticle(self, pipe):
     #Particle Effect: VERY SLOW
     self.particle = ParticleEffect()
     self.particle.loadConfig("../models/steam.ptf")
     self.particle.start(pipe)
     self.particle.setPos(100.00, 0.000, 0)
     self.particle.setScale(100.00, 80.00, 80.00)
コード例 #41
0
ファイル: ball.py プロジェクト: pavelkang/Term_Project
 def useThunder(self):
     self.onThunder = True
     self.pokeCandyCount -= 1
     self.thunder = ParticleEffect()
     self.thunder.loadConfig("thunder.ptf")
     self.thunder.start(parent=render, renderParent=render)
     self.use.play()
コード例 #42
0
    def __init__(self, main, username, pos = LVecBase3(-5, -5, 1), isCurrentPlayer = False, carId=3):
        self.username = username
        self.main = main
        self.isCurrentPlayer = isCurrentPlayer
        self.boostCount = 0
        self.boostActive = False
        self.boostStep = 2
        self.boostDuration = 0
        self.moveStartTime = self.startTime = self.boostStartTime = time.time()
        self.pos = pos
        self.boostFactor = 1.2
        self.specs = {"mass": 800.0,
                    "maxWheelForce": 2000.0,
                    "brakeForce": 100.0,
                    "steeringLock": 45.0,
                    "maxSpeed": 33.0,
                    "maxReverseSpeed": 10.0}
        self.vehicleControlState = {"throttle": 0, "reverse": False, "brake": 0.0, "steering": 0.0, "health": 1}

        # Steering change per second, normalised to steering lock
        # Eg. 45 degrees lock and 1.0 rate means 45 degrees per second
        self.steeringRate = 0.8
        self.centreingRate = 1.2
        self.speed = 0

        self.setupVehicle(main)

        self.props = VehicleProps(carId)

        self.currentPowerups = {"powerup1": None, "powerup2": None, "powerup3": None}
        if isCurrentPlayer:
            #This command is required for Panda to render particles
            base.enableParticles()
            self.p = ParticleEffect()
コード例 #43
0
ファイル: dorf.py プロジェクト: anossov/dorfdelf
    def __init__(self, pos, world):
        self.id = next(Dorf.idgen)
        self.world = world
        self.node = loader.loadModel('media/models/dorfPH.egg')
        self.text = core.TextNode('dorf')
        self.text.setText('Dorf {}'.format(self.id))
        self.text.setAlign(core.TextNode.ACenter)
        self.text.setTextColor(1, 1, 0.5, 1)
        self.text.setShadow(0.1, 0.1)
        self.text.setShadowColor(0, 0, 0, 0.8)
        self.textnode = self.node.attachNewNode(self.text)
        self.textnode.setBillboardPointEye()
        self.textnode.setPos(0, 0, 1.1)
        self.textnode.setScale(0.4)
        self.textnode.setDepthWrite(False)
        self.textnode.setDepthTest(False)
        self.textnode.setShaderOff()
        self.x = int(pos.x)
        self.y = int(pos.y)
        self.z = 0
        self.next = None
        self.dir = (1, 0)

        taskMgr.doMethodLater(0.5, self.move, 'Move dorf')

        self.set_z(int(pos.z))
        self.node.setPos(pos.x, pos.y, 0)

        self.particles = ParticleEffect()
        self.particles.loadConfig('media/sparks.ptf')
        self.particles.reparentTo(self.node)
コード例 #44
0
ファイル: LVL03.py プロジェクト: CarlosPlusPlus/rpi-undergrad
 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()
コード例 #45
0
ファイル: Opera.py プロジェクト: coginvasion/src
 def __createToonInterval(self, delay):
     track = Sequence(Wait(delay))
     sprayEffect = ParticleEffect()
     sprayEffect.loadConfig('phase_5/etc/soundWave.ptf')
     sprayEffect.setDepthWrite(0)
     sprayEffect.setDepthTest(0)
     sprayEffect.setTwoSided(1)
     I1 = 2.8
     track.append(ActorInterval(self.avatar, 'sound', playRate=1.0, startTime=0.0, endTime=I1))
     track.append(Func(self.setPosFromOther, sprayEffect, self.gag, Point3(0, 1.6, -0.18)))
     track.append(self.__getPartTrack(sprayEffect, 0.0, 6.0, [sprayEffect, self.avatar, 0], softStop=-3.5))
     track.append(ActorInterval(self.avatar, 'sound', playRate=1.0, startTime=I1))
     return track
コード例 #46
0
    def loadParticleConfig(self, filename):

         self.particle.cleanup()
         self.particle = ParticleEffect()
         self.particle.loadConfig("/e/Panda3D-1.9.2-x64/samples/particles/"+filename)

         #self.particle.start(self.teapot)
         self.particle.setPos(3, 0, 2.225)
コード例 #47
0
ファイル: world.py プロジェクト: Splime/ProjectThree
 def loadParticleConfig(self, file):
     self.p1.reset()
     self.p1 = ParticleEffect()
     self.p1.loadConfig(Filename(file))        
     self.p1.start(self.player)
     self.p1.setPos(-1.75, -10, 1.375)
     self.p1.setHpr(0, 90, 0)
     self.p1.setScale(2.0)
     self.p1.setLightOff()
     self.p2.reset()
     self.p2 = ParticleEffect()
     self.p2.loadConfig(Filename(file))        
     self.p2.start(self.player)
     self.p2.setPos(1.75, -10, 1.375)
     self.p2.setHpr(0, 90, 0)
     self.p2.setScale(2.0)
     self.p2.setLightOff()
コード例 #48
0
ファイル: tutorial8.py プロジェクト: Splime/ProjectThree
 def loadParticleConfig(self, file):
     self.p1.reset()
     self.p1 = ParticleEffect()
     self.p1.loadConfig(Filename(file))        
     self.p1.start(self.player)
     self.p1.setPos(-250, -700, 275)
     self.p1.setHpr(0, 90, 0)
     self.p1.setScale(200)
     self.p1.setLightOff()
     self.p2.reset()
     self.p2 = ParticleEffect()
     self.p2.loadConfig(Filename(file))        
     self.p2.start(self.player)
     self.p2.setPos(250, -700, 275)
     self.p2.setHpr(0, 90, 0)
     self.p2.setScale(200)
     self.p2.setLightOff()
コード例 #49
0
ファイル: sparp.py プロジェクト: kridily/fall_and_fix
 def loadParticleConfig(self, file):
     #Start of the code from spark.ptf
     self.p.cleanup()
     self.p = ParticleEffect()
     self.p.loadConfig(Filename(file))        
     #Sets particles to birth relative to the teapot, but to render at toplevel
     self.p.start(self.t)
     self.p.setPos(-2.00, 0.000, 3.150)
コード例 #50
0
ファイル: smoke_emitter.py プロジェクト: daFthawk/group-3
 def __init__(self, parent, _x, _y, _z):
     self.x = _x
     self.y = _y
     self.z = _z
     self.parent = parent
     self.p = ParticleEffect()
     self.load_config('steam.ptf')
     self.p.setScale(200)
コード例 #51
0
 def __init__( self, parent=None, name=None ):
   global PARTICLES_ENABLED
   if not PARTICLES_ENABLED:
     base.enableParticles()
     PARTICLES_ENABLED = True
   # define the name of this object
   VirtualNodeWrapper.__init__(self, parent, name, PARTICLE_WRAPPER_DUMMYOBJECT)
   
   self.particleSystem = ParticleEffect()
コード例 #52
0
ファイル: PipeWires.py プロジェクト: kridily/fall_and_fix
 def loadParticleConfig(self, path, file):
     #Start of the code from steam.ptf
     self.particle.cleanup()
     self.particle = ParticleEffect()
     self.particle.loadConfig(Filename(path, file))
     #Sets particles to birth relative to the teapot, but to render at toplevel
     self.particle.start(self.model)
     self.particle.setScale(100)
     self.particle.setPos(0.00, -200.000, -200.00)
コード例 #53
0
 def loadParticleConfig(self, position):
     self.p.cleanup()
     self.p = ParticleEffect()
     self.p.loadConfig(os.path.join("models", "smokering.ptf"))   
     self.p.accelerate(.25) 
     self.p.setPos(position) 
     self.p.reparentTo(render) 
     self.p.setScale(30)  
     self.p.start()
コード例 #54
0
ファイル: ball.py プロジェクト: pavelkang/Term_Project
 def useFlame(self):
     self.onFire = True # on fire
     self.playerCandyCount -= 1
     self.pokeStatus = 1
     self.flame = ParticleEffect()
     self.flame.loadConfig("fireish.ptf")
     self.flame.setPos(self.pikachu.getPos())
     self.flame.start(parent=render, renderParent=render)
     self.updateTwoD()
コード例 #55
0
ファイル: debris.py プロジェクト: stelic/limitload
    def _start_pfx (self, enode, rnode, pos, radius, scale1, scale2,
                    lifespan, poolsize, amplitude,
                    texpath, color, alphamode, starttime):

        pfx = ParticleEffect()
        pfx.setPos(pos)

        p0 = make_particles()
        p0.setPoolSize(16)
        p0.setPoolSize(poolsize)
        p0.setBirthRate(starttime or 1e-5)
        p0.setLitterSize(poolsize)
        p0.setLitterSpread(0)
        #p0.setSystemLifespan(1.0)
        #p0.setLocalVelocityFlag(1)
        #p0.setSystemGrowsOlderFlag(0)

        p0.setFactory("PointParticleFactory")
        p0.factory.setLifespanBase(lifespan)
        p0.factory.setLifespanSpread(0.0)
        #p0.factory.setMassBase(1.00)
        #p0.factory.setMassSpread(0.00)
        #p0.factory.setTerminalVelocityBase(400.0000)
        #p0.factory.setTerminalVelocitySpread(0.0000)

        p0.setRenderer("SpriteParticleRenderer")
        p0.renderer.setAlphaMode(alphamode)
        texture = base.load_texture("data", texpath)
        p0.renderer.setTexture(texture)
        # p0.renderer.setUserAlpha(alpha)
        p0.renderer.setColor(color)
        p0.renderer.setXScaleFlag(1)
        p0.renderer.setYScaleFlag(1)
        p0.renderer.setInitialXScale(scale1)
        p0.renderer.setFinalXScale(scale2)
        p0.renderer.setInitialYScale(scale1)
        p0.renderer.setFinalYScale(scale2)

        p0.setEmitter("SphereVolumeEmitter")
        p0.emitter.setRadius(radius)
        p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
        p0.emitter.setAmplitude(amplitude)
        #p0.emitter.setAmplitudeSpread(0.0)
        #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))

        #f0 = ForceGroup("vertex")
        #force0 = LinearVectorForce(Vec3(0.0, 0.0, -amplitude * 2))
        #force0.setActive(1)
        #f0.addForce(force0)

        p0.setRenderParent(rnode)

        #pfx.addForceGroup(f0)
        pfx.addParticles(p0)
        pfx.start(enode)

        self._pfxes.append((pfx, lifespan, starttime))
コード例 #56
0
 def addEffects(self):
     if self.mp.has_key('effects'):
         base.enableParticles()
         for effect in self.mp['effects']:
             p = ParticleEffect()
             p.loadConfig(GAME+'/particles/'+effect['file']+'.ptf') 
             p.start(render)
             p.setPos(self.logic2terrain( effect['position'] ))
コード例 #57
0
ファイル: saucer.py プロジェクト: KipEnyan/UFO-Game
    def __init__(self):
    
        self.ship = loader.loadModel("Art\ufo.egg")
        self.beam = loader.loadModel("Art\eam.egg")
        self.health = 100
      
        #Dummy is used to position the tractor beam collisionsphere
        self.dummy = NodePath('dummy')
        self.dummy.reparentTo(render)
        
        #Dummy2 used to position abductees
        self.dummy2 =  NodePath('dummy2')
        self.dummy2.reparentTo(render)

        self.beam.reparentTo(self.dummy2)
        
        self.glownode = self.ship.find("**/l_glownode")
        self.glownode.setColor(0,0,.5,1)
        
        self.glownode2 = self.ship.find("**/r_glownode")
        self.glownode2.setColor(0,0,.5,1)
            
        self.ship.reparentTo(render)
        self.ship.setScale(1)
        #self.ship.setH(180)
        self.ship.setPos(0,0,25)
        self.dummy.setPos(0,0,25)
        self.dummy2.setPos(0,0,25)
        
        #list of things currently abducting
        self.abductlist = []
        self.animals = []
        self.inanimates = []
        taskMgr.add(self.abductTask, "abductTask")
        taskMgr.add(self.lightTask, "lightTask")
        self.stuntime = 30
        self.stunbase = 30
        self.updown = False
        self.beamspeed = 1
        self.basebeamspeed = 2
        
        self.collected = 0
        
        self.beamon = True
        
        taskMgr.add(self.particleTask, "shipparticleTask")

        self.mydir = os.path.abspath(sys.path[0])
        self.mydir = Filename.fromOsSpecific(self.mydir).getFullpath()
        self.mydir = Filename(self.mydir)
        #self.mydir = self.mydir.toOsSpecific()
        
        self.abductp = ParticleEffect()
        self.abductp.loadConfig(self.mydir + '/abduct.ptf')
        self.pcount = 0
        self.particletime = 60 #Must be integer 
コード例 #58
0
ファイル: sparp.py プロジェクト: kridily/fall_and_fix
class World(DirectObject):
    def __init__(self):
        

        #More standard initialization
        self.accept('escape', sys.exit)
        self.accept('1', self.loadParticleConfig , ['spark.ptf'])
        
        
        self.accept('escape', sys.exit)
        base.disableMouse()
        camera.setPos(0,-20,2)
        base.setBackgroundColor( 0, 0, 0 )

        #This command is required for Panda to render particles
        base.enableParticles()
        self.t = loader.loadModel("models/stepipe")
        self.t.setPos(0,0,0)
        self.t.reparentTo(render)
        self.setupLights()
        self.p = ParticleEffect()
        self.loadParticleConfig('spark.ptf')
        self.p.setScale(3)

    def loadParticleConfig(self, file):
        #Start of the code from spark.ptf
        self.p.cleanup()
        self.p = ParticleEffect()
        self.p.loadConfig(Filename(file))        
        #Sets particles to birth relative to the teapot, but to render at toplevel
        self.p.start(self.t)
        self.p.setPos(-2.00, 0.000, 3.150)
    
    #Setup lighting
    def setupLights(self):
        ambientLight = AmbientLight("ambientLight")
        ambientLight.setColor(Vec4(.4, .4, .35, 1))
        directionalLight = DirectionalLight("directionalLight")
        directionalLight.setDirection(Vec3( 0, 8, -2.5 ) )
        directionalLight.setColor(Vec4( 0.9, 0.8, 0.9, 1 ) )
        #Set lighting on teapot so spark doesn't get affected
        self.t.setLight(self.t.attachNewNode(directionalLight))
        self.t.setLight(self.t.attachNewNode(ambientLight))