示例#1
0
    def test_PerParticleEmitter_template(self):
        from lepton import Particle, ParticleGroup
        from lepton.emitter import PerParticleEmitter

        source_group = ParticleGroup()
        source_group.new(Particle(position=(1, 1, 1)))
        source_group.new(Particle(position=(2, 2, 2)))
        source_group.update(0)

        emitter = PerParticleEmitter(source_group,
                                     rate=1,
                                     template=Particle(position=(1.0, 1.0,
                                                                 1.0),
                                                       velocity=(0, 5, 2),
                                                       color=(0.5, 0.5, 0.5,
                                                              1.0)))
        group = ParticleGroup()
        count = emitter(1, group)
        group.update(0)
        self.assertEqual(count, len(source_group))
        self.assertEqual(len(group), len(source_group))
        particle = list(group)[0]
        self.assertVector(particle.position, (1, 1, 1))
        self.assertVector(particle.velocity, (0, 5, 2))
        self.assertColor(particle.color, (0.5, 0.5, 0.5, 1.0))
        particle = list(group)[1]
        self.assertVector(particle.position, (2, 2, 2))
        self.assertVector(particle.velocity, (0, 5, 2))
        self.assertColor(particle.color, (0.5, 0.5, 0.5, 1.0))
示例#2
0
 def _make_group(self):
     from lepton import Particle, ParticleGroup
     g = ParticleGroup()
     g.new(Particle(position=(0, 1.0, 0), velocity=(0, 0, 0))),
     g.new(Particle(position=(0, 0, 1.0), velocity=(0, 0, 0))),
     g.update(0)
     p = list(g)
     p[0].position = (10.0, 0, 0)
     p[1].position = (0, 0.0, 10.0)
     return g
示例#3
0
	def _make_group(self):
		from lepton import Particle, ParticleGroup
		g = ParticleGroup()
		g.new(Particle(position=(0, 1.0, 0), velocity=(0, 0, 0))),
		g.new(Particle(position=(0, 0, 1.0), velocity=(0, 0, 0))),
		g.update(0)
		p = list(g)
		p[0].position = (10.0, 0, 0)
		p[1].position = (0, 0.0, 10.0)
		return g
示例#4
0
 def test_len(self):
     from lepton import ParticleGroup
     group = ParticleGroup()
     self.assertEqual(len(group), 0)
     group.new(TestParticle())
     self.assertEqual(len(group), 0)
     group.new(TestParticle())
     self.assertEqual(len(group), 0)
     # New particles become visible on update
     group.update(0)
     self.assertEqual(len(group), 2)
示例#5
0
	def test_len(self):
		from lepton import ParticleGroup
		group = ParticleGroup()
		self.assertEqual(len(group), 0)
		group.new(TestParticle())
		self.assertEqual(len(group), 0)
		group.new(TestParticle())
		self.assertEqual(len(group), 0)
		# New particles become visible on update
		group.update(0)
		self.assertEqual(len(group), 2)
示例#6
0
	def test_new_particle_kwargs(self):
		from lepton import ParticleGroup, Particle
		group = ParticleGroup()
		self.assertEqual(len(group), 0)
		self.assertEqual(group.new_count(), 0)
		p = group.new(position=(1,-1,2), age=2)
		self.assertEqual(tuple(p.position), (1, -1, 2))
		self.assertEqual(p.age, 2)
		tmpl_p = Particle(age=3, velocity=(-1,2,3))
		p = group.new(tmpl_p, age=5)
		self.assertEqual(tuple(p.velocity), (-1,2,3))
		self.assertEqual(p.age, 5)
		self.assertEqual(len(group), 0)
		self.assertEqual(group.new_count(), 2)
		self.failIf(list(group))
		group.update(0) # incorporate new particles
		self.assertEqual(len(group), 2)
		self.assertEqual(group.new_count(), 0)
示例#7
0
 def test_new_particle_kwargs(self):
     from lepton import ParticleGroup, Particle
     group = ParticleGroup()
     self.assertEqual(len(group), 0)
     self.assertEqual(group.new_count(), 0)
     p = group.new(position=(1, -1, 2), age=2)
     self.assertEqual(tuple(p.position), (1, -1, 2))
     self.assertEqual(p.age, 2)
     tmpl_p = Particle(age=3, velocity=(-1, 2, 3))
     p = group.new(tmpl_p, age=5)
     self.assertEqual(tuple(p.velocity), (-1, 2, 3))
     self.assertEqual(p.age, 5)
     self.assertEqual(len(group), 0)
     self.assertEqual(group.new_count(), 2)
     self.failIf(list(group))
     group.update(0)  # incorporate new particles
     self.assertEqual(len(group), 2)
     self.assertEqual(group.new_count(), 0)
示例#8
0
    def test_PerParticleEmitter_partial(self):
        from lepton import Particle, ParticleGroup
        from lepton.emitter import PerParticleEmitter

        source_group = ParticleGroup()
        source_group.new(object())
        source_group.new(object())
        source_group.new(object())
        source_group.update(0)

        emitter = PerParticleEmitter(source_group, rate=1)
        group = ParticleGroup()
        # It should take four quarter second updates to emit any
        self.assertEqual(emitter(0.25, group), 0)
        self.assertEqual(emitter(0.25, group), 0)
        self.assertEqual(emitter(0.25, group), 0)
        self.assertEqual(emitter(0.25, group), len(source_group))
        group.update(0)
        self.assertEqual(len(group), len(source_group))
示例#9
0
	def test_PerParticleEmitter_partial(self):
		from lepton import Particle, ParticleGroup
		from lepton.emitter import PerParticleEmitter

		source_group = ParticleGroup()
		source_group.new(object())
		source_group.new(object())
		source_group.new(object())
		source_group.update(0)

		emitter = PerParticleEmitter(source_group, rate=1)
		group = ParticleGroup()
		# It should take four quarter second updates to emit any
		self.assertEqual(emitter(0.25, group), 0)
		self.assertEqual(emitter(0.25, group), 0)
		self.assertEqual(emitter(0.25, group), 0)
		self.assertEqual(emitter(0.25, group), len(source_group))
		group.update(0)
		self.assertEqual(len(group), len(source_group))
示例#10
0
	def test_particle_vector_clamp(self):
		from lepton import ParticleGroup
		group = ParticleGroup()
		p = TestParticle()
		p.color = (2,0.5,-1,5)
		p.size = (0, 2, 0)
		newp = group.new(p)
		self.assertEqual(tuple(newp.color), p.color)
		self.assertEqual(tuple(newp.size), p.size)
		self.assertEqual(tuple(newp.color.clamp(0, 1)), (1, 0.5, 0, 1))
		self.assertEqual(tuple(newp.size.clamp(1, 1.5)), (1, 1.5, 1))
示例#11
0
 def test_particle_vector_clamp(self):
     from lepton import ParticleGroup
     group = ParticleGroup()
     p = TestParticle()
     p.color = (2, 0.5, -1, 5)
     p.size = (0, 2, 0)
     newp = group.new(p)
     self.assertEqual(tuple(newp.color), p.color)
     self.assertEqual(tuple(newp.size), p.size)
     self.assertEqual(tuple(newp.color.clamp(0, 1)), (1, 0.5, 0, 1))
     self.assertEqual(tuple(newp.size.clamp(1, 1.5)), (1, 1.5, 1))
示例#12
0
    def test_PerParticleEmitter_emit(self):
        from lepton import ParticleGroup
        from lepton.emitter import PerParticleEmitter

        source_group = ParticleGroup()
        source_group.new(object())
        source_group.new(object())
        source_group.new(object())
        source_group.update(0)

        emitter = PerParticleEmitter(source_group)
        group = ParticleGroup()
        self.assertEqual(len(group), 0)
        emitter.emit(10, group)
        group.update(0)
        expected = 10 * len(source_group)
        self.assertEqual(len(group), expected)

        # Negative emit value is equivilant to zero
        emitter.emit(-10, group)
        group.update(0)
        self.assertEqual(len(group), expected)
示例#13
0
	def test_PerParticleEmitter_emit(self):
		from lepton import ParticleGroup
		from lepton.emitter import PerParticleEmitter

		source_group = ParticleGroup()
		source_group.new(object())
		source_group.new(object())
		source_group.new(object())
		source_group.update(0)

		emitter = PerParticleEmitter(source_group)
		group = ParticleGroup()
		self.assertEqual(len(group), 0)
		emitter.emit(10, group)
		group.update(0)
		expected = 10 * len(source_group)
		self.assertEqual(len(group), expected)

		# Negative emit value is equivilant to zero
		emitter.emit(-10, group)
		group.update(0)
		self.assertEqual(len(group), expected)
示例#14
0
 def _make_group(self):
     from lepton import Particle, ParticleGroup
     g = ParticleGroup()
     g.new(Particle((0, 0, 0), (0, 0, 0)))
     g.new(Particle((0, 0, 0), (1, 1, 1), size=(2, 2, 2)))
     g.new(Particle((1, 1, 1), (-2, -2, -2), size=(3, 2, 0)))
     g.update(0)
     return g
示例#15
0
	def _make_group(self):
		from lepton import Particle, ParticleGroup
		g = ParticleGroup()
		g.new(Particle((0,0,0), (0,0,0)))
		g.new(Particle((0,0,0), (1,1,1), size=(2,2,2)))
		g.new(Particle((1,1,1), (-2,-2,-2), size=(3,2,0)))
		g.update(0)
		return g
示例#16
0
	def test_PerParticleEmitter_time_to_live(self):
		from lepton import Particle, ParticleGroup
		from lepton.emitter import PerParticleEmitter

		source_group = ParticleGroup()
		source_group.new(object())
		source_group.new(object())
		source_group.new(object())
		source_group.new(object())
		source_group.update(0)

		emitter = PerParticleEmitter(source_group, rate=1, time_to_live=3.0)
		group = ParticleGroup(controllers=[emitter])
		count = emitter(2, group)
		self.assertEqual(count, 2 * len(source_group))
		self.assertEqual(emitter.time_to_live, 1)
		self.failUnless(emitter in group.controllers)
		count = emitter(2, group)
		# Since only one second remained before expiring
		# only one particle per should be emitted
		self.assertEqual(count, len(source_group))
		self.assertEqual(emitter.time_to_live, 0)
		self.failUnless(emitter not in group.controllers)
示例#17
0
    def test_PerParticleEmitter_time_to_live(self):
        from lepton import Particle, ParticleGroup
        from lepton.emitter import PerParticleEmitter

        source_group = ParticleGroup()
        source_group.new(object())
        source_group.new(object())
        source_group.new(object())
        source_group.new(object())
        source_group.update(0)

        emitter = PerParticleEmitter(source_group, rate=1, time_to_live=3.0)
        group = ParticleGroup(controllers=[emitter])
        count = emitter(2, group)
        self.assertEqual(count, 2 * len(source_group))
        self.assertEqual(emitter.time_to_live, 1)
        self.failUnless(emitter in group.controllers)
        count = emitter(2, group)
        # Since only one second remained before expiring
        # only one particle per should be emitted
        self.assertEqual(count, len(source_group))
        self.assertEqual(emitter.time_to_live, 0)
        self.failUnless(emitter not in group.controllers)
示例#18
0
 def test_new_particle(self):
     from lepton import ParticleGroup, Particle
     group = ParticleGroup()
     self.assertEqual(len(group), 0)
     self.assertEqual(group.new_count(), 0)
     p1 = Particle(age=1)
     p2 = Particle(age=2)
     group.new(p1)
     self.assertEqual(len(group), 0)
     self.assertEqual(group.new_count(), 1)
     self.failIf(list(group))
     group.new(p2)
     self.assertEqual(len(group), 0)
     self.assertEqual(group.new_count(), 2)
     self.failIf(list(group))
     group.update(0)  # incorporate new particles
     self.assertEqual(len(group), 2)
     self.assertEqual(group.new_count(), 0)
     particles = list(group)
     self.assertEqual(len(particles), 2)
     self.assertEqual(particles[0].age, 1)
     self.assertEqual(particles[1].age, 2)
     return group, particles
示例#19
0
	def test_new_particle(self):
		from lepton import ParticleGroup, Particle
		group = ParticleGroup()
		self.assertEqual(len(group), 0)
		self.assertEqual(group.new_count(), 0)
		p1 = Particle(age=1)
		p2 = Particle(age=2)
		group.new(p1)
		self.assertEqual(len(group), 0)
		self.assertEqual(group.new_count(), 1)
		self.failIf(list(group))
		group.new(p2)
		self.assertEqual(len(group), 0)
		self.assertEqual(group.new_count(), 2)
		self.failIf(list(group))
		group.update(0) # incorporate new particles
		self.assertEqual(len(group), 2)
		self.assertEqual(group.new_count(), 0)
		particles = list(group)
		self.assertEqual(len(particles), 2)
		self.assertEqual(particles[0].age, 1)
		self.assertEqual(particles[1].age, 2)
		return group, particles
示例#20
0
	def test_PerParticleEmitter_template(self):
		from lepton import Particle, ParticleGroup
		from lepton.emitter import PerParticleEmitter

		source_group = ParticleGroup()
		source_group.new(Particle(position=(1,1,1)))
		source_group.new(Particle(position=(2,2,2)))
		source_group.update(0)

		emitter = PerParticleEmitter(source_group, rate=1, template=Particle(
			position=(1.0, 1.0, 1.0), velocity=(0, 5, 2), color=(0.5, 0.5, 0.5, 1.0)))
		group = ParticleGroup()
		count = emitter(1, group)
		group.update(0)
		self.assertEqual(count, len(source_group))
		self.assertEqual(len(group), len(source_group))
		particle = list(group)[0]
		self.assertVector(particle.position, (1,1,1))
		self.assertVector(particle.velocity, (0,5,2))
		self.assertColor(particle.color, (0.5, 0.5, 0.5, 1.0))
		particle = list(group)[1]
		self.assertVector(particle.position, (2,2,2))
		self.assertVector(particle.velocity, (0,5,2))
		self.assertColor(particle.color, (0.5, 0.5, 0.5, 1.0))
示例#21
0
	def _make_group(self):
		from lepton import Particle, ParticleGroup
		g = ParticleGroup()
		g.new(Particle(position=(0, 1, 0), velocity=(0, -1, 0))),
		g.new(Particle(position=(0, 1, 0), velocity=(0, -1.5, 0))),
		g.new(Particle(position=(-1, -1, 1), velocity=(2, 2, 0))),
		g.new(Particle(position=(1, 1, 1), velocity=(0, 1, 0)))
		g.update(0)
		p = list(g)
		p[0].position = (0, 0, 0)
		p[1].position = (0, -0.5, 0)
		p[2].position = (1, 1, 1)
		p[3].position = (1, 2, 1)
		return g
示例#22
0
 def _make_group(self):
     from lepton import Particle, ParticleGroup
     g = ParticleGroup()
     g.new(Particle(position=(0, 1, 0), velocity=(0, -1, 0))),
     g.new(Particle(position=(0, 1, 0), velocity=(0, -1.5, 0))),
     g.new(Particle(position=(-1, -1, 1), velocity=(2, 2, 0))),
     g.new(Particle(position=(1, 1, 1), velocity=(0, 1, 0)))
     g.update(0)
     p = list(g)
     p[0].position = (0, 0, 0)
     p[1].position = (0, -0.5, 0)
     p[2].position = (1, 1, 1)
     p[3].position = (1, 2, 1)
     return g
示例#23
0
	def test_particle_vector_swizzle(self):
		from lepton import ParticleGroup
		group = ParticleGroup()
		newp = group.new(TestParticle())
		self.assertEqual(tuple(newp.velocity), (0,0,0))
		self.assertEqual(newp.velocity.x, 0)
		self.assertEqual(newp.velocity.y, 0)
		self.assertEqual(newp.velocity.z, 0)
		newp.velocity.x = 2
		newp.velocity.y = -2
		newp.velocity.z = 1
		self.assertEqual(tuple(newp.velocity), (2,-2,1))
		self.assertEqual(newp.velocity.x, 2)
		self.assertEqual(newp.velocity.y, -2)
		self.assertEqual(newp.velocity.z, 1)
		newp.velocity = (3,4,5)
		self.assertEqual(tuple(newp.velocity), (3,4,5))
		self.assertEqual(newp.velocity.x, 3)
		self.assertEqual(newp.velocity.y, 4)
		self.assertEqual(newp.velocity.z, 5)

		self.assertEqual(tuple(newp.color), (0,0,0,0))
		self.assertEqual(newp.color.r, 0)
		self.assertEqual(newp.color.g, 0)
		self.assertEqual(newp.color.b, 0)
		self.assertEqual(newp.color.a, 0)
		newp.color.r = 1
		newp.color.g = -2
		newp.color.b = 3
		newp.color.a = -1
		self.assertEqual(tuple(newp.color), (1,-2,3,-1))
		self.assertEqual(newp.color.r, 1)
		self.assertEqual(newp.color.g, -2)
		self.assertEqual(newp.color.b, 3)
		self.assertEqual(newp.color.a, -1)
		newp.color = (5,4,3,2)
		self.assertEqual(tuple(newp.color), (5,4,3,2))
		self.assertEqual(newp.color.r, 5)
		self.assertEqual(newp.color.g, 4)
		self.assertEqual(newp.color.b, 3)
		self.assertEqual(newp.color.a, 2)
		newp.color = (6,5,4) # alpha defaults to 1
		self.assertEqual(tuple(newp.color), (6,5,4,1))
		self.assertEqual(newp.color.r, 6)
		self.assertEqual(newp.color.g, 5)
		self.assertEqual(newp.color.b, 4)
		self.assertEqual(newp.color.a, 1)
示例#24
0
    def test_particle_vector_swizzle(self):
        from lepton import ParticleGroup
        group = ParticleGroup()
        newp = group.new(TestParticle())
        self.assertEqual(tuple(newp.velocity), (0, 0, 0))
        self.assertEqual(newp.velocity.x, 0)
        self.assertEqual(newp.velocity.y, 0)
        self.assertEqual(newp.velocity.z, 0)
        newp.velocity.x = 2
        newp.velocity.y = -2
        newp.velocity.z = 1
        self.assertEqual(tuple(newp.velocity), (2, -2, 1))
        self.assertEqual(newp.velocity.x, 2)
        self.assertEqual(newp.velocity.y, -2)
        self.assertEqual(newp.velocity.z, 1)
        newp.velocity = (3, 4, 5)
        self.assertEqual(tuple(newp.velocity), (3, 4, 5))
        self.assertEqual(newp.velocity.x, 3)
        self.assertEqual(newp.velocity.y, 4)
        self.assertEqual(newp.velocity.z, 5)

        self.assertEqual(tuple(newp.color), (0, 0, 0, 0))
        self.assertEqual(newp.color.r, 0)
        self.assertEqual(newp.color.g, 0)
        self.assertEqual(newp.color.b, 0)
        self.assertEqual(newp.color.a, 0)
        newp.color.r = 1
        newp.color.g = -2
        newp.color.b = 3
        newp.color.a = -1
        self.assertEqual(tuple(newp.color), (1, -2, 3, -1))
        self.assertEqual(newp.color.r, 1)
        self.assertEqual(newp.color.g, -2)
        self.assertEqual(newp.color.b, 3)
        self.assertEqual(newp.color.a, -1)
        newp.color = (5, 4, 3, 2)
        self.assertEqual(tuple(newp.color), (5, 4, 3, 2))
        self.assertEqual(newp.color.r, 5)
        self.assertEqual(newp.color.g, 4)
        self.assertEqual(newp.color.b, 3)
        self.assertEqual(newp.color.a, 2)
        newp.color = (6, 5, 4)  # alpha defaults to 1
        self.assertEqual(tuple(newp.color), (6, 5, 4, 1))
        self.assertEqual(newp.color.r, 6)
        self.assertEqual(newp.color.g, 5)
        self.assertEqual(newp.color.b, 4)
        self.assertEqual(newp.color.a, 1)
示例#25
0
	def test_mass_new_particles(self):
		from lepton import ParticleGroup
		count = 12345
		group = ParticleGroup()
		p = TestParticle()
		for i in xrange(count):
			p.mass = i
			newp = group.new(p)
			self.assertEqual(newp.mass, p.mass)

		group.update(0)
		piter = iter(group)
		for i in xrange(count):
			newp = piter.next()
			self.assertEqual(newp.mass, i)

		self.assertEqual(len(group), count)
		self.assertEqual(group.killed_count(), 0)
		self.assertRaises(StopIteration, piter.next)
示例#26
0
    def test_mass_new_particles(self):
        from lepton import ParticleGroup
        count = 12345
        group = ParticleGroup()
        p = TestParticle()
        for i in xrange(count):
            p.mass = i
            newp = group.new(p)
            self.assertEqual(newp.mass, p.mass)

        group.update(0)
        piter = iter(group)
        for i in xrange(count):
            newp = piter.next()
            self.assertEqual(newp.mass, i)

        self.assertEqual(len(group), count)
        self.assertEqual(group.killed_count(), 0)
        self.assertRaises(StopIteration, piter.next)
示例#27
0
	def test_Lifetime_controller(self):
		from lepton import controller, Particle, ParticleGroup
		g = ParticleGroup()
		g.new(Particle(age=0))
		g.new(Particle(age=0.8))
		g.new(Particle(age=1.0))
		g.new(Particle(age=0.75))
		lifetime = controller.Lifetime(max_age=0.75)
		g.update(0)
		lifetime(0, g)
		p = list(g)
		self.assertEqual(len(g), 2)
		self.assertFloatEqiv(p[0].age, 0.0)
		self.assertFloatEqiv(p[1].age, 0.75)
示例#28
0
 def test_Lifetime_controller(self):
     from lepton import controller, Particle, ParticleGroup
     g = ParticleGroup()
     g.new(Particle(age=0))
     g.new(Particle(age=0.8))
     g.new(Particle(age=1.0))
     g.new(Particle(age=0.75))
     lifetime = controller.Lifetime(max_age=0.75)
     g.update(0)
     lifetime(0, g)
     p = list(g)
     self.assertEqual(len(g), 2)
     self.assertFloatEqiv(p[0].age, 0.0)
     self.assertFloatEqiv(p[1].age, 0.75)
示例#29
0
    def test_particle_attrs(self):
        from lepton import ParticleGroup
        p = TestParticle()
        p.position = (1, 2, 3)
        p.velocity = (4, 5, 6)
        p.color = (7, 8, 9, 10)
        p.size = (11, 12, 13)
        p.up = (-1, -2, -3)
        p.rotation = (-4, -5, -6)
        p.age = 111
        p.mass = 2

        group = ParticleGroup()
        newp = group.new(p)
        self.assertEqual(tuple(newp.position), p.position)
        self.assertEqual(tuple(newp.velocity), p.velocity)
        self.assertEqual(tuple(newp.color), p.color)
        self.assertEqual(tuple(newp.size), p.size)
        self.assertEqual(tuple(newp.up), p.up)
        self.assertEqual(tuple(newp.rotation), p.rotation)
        self.assertEqual(newp.age, p.age)
        self.assertEqual(newp.mass, p.mass)
示例#30
0
	def test_particle_attrs(self):
		from lepton import ParticleGroup
		p = TestParticle()
		p.position=(1,2,3)
		p.velocity=(4,5,6)
		p.color=(7,8,9,10)
		p.size=(11,12,13)
		p.up=(-1,-2,-3)
		p.rotation=(-4,-5,-6)
		p.age=111
		p.mass=2

		group = ParticleGroup()
		newp = group.new(p)
		self.assertEqual(tuple(newp.position), p.position)
		self.assertEqual(tuple(newp.velocity), p.velocity)
		self.assertEqual(tuple(newp.color), p.color)
		self.assertEqual(tuple(newp.size), p.size)
		self.assertEqual(tuple(newp.up), p.up)
		self.assertEqual(tuple(newp.rotation), p.rotation)
		self.assertEqual(newp.age, p.age)
		self.assertEqual(newp.mass, p.mass)
示例#31
0
文件: logo.py 项目: lordmauve/lepton
logo_files = glob.glob(
    os.path.join(os.path.dirname(__file__), 'logo_frames/logo*.png'))
images = [pyglet.image.load(f) for f in sorted(logo_files)]
texturizer = FlipBookTexturizer.from_images(images + images[-1::-1], 0.075)

group = ParticleGroup(
    controllers=[Fader(fade_out_start=50.0, fade_out_end=58.5)],
    renderer=BillboardRenderer(texturizer))
template = Particle(
    size=(1, 1, 0),
    color=(1, 1, 1, 1),
)
positions = set([((x - 25) * 1.4 + (y % 2.0) * 0.7, (y - 25) * 1.4,
                  (z - 25) * 1.4 + (y % 2.0) * 0.7) for x in range(50)
                 for y in range(50) for z in range(50)])
group.new(template)
for i in range(12000):
    group.new(template, position=positions.pop(), age=49.35)

win.set_visible(True)
pyglet.clock.schedule_interval(default_system.update, (1.0 / 40.0))
pyglet.clock.set_fps_limit(None)

label = pyglet.text.Label("Lepton",
                          font_name="Helvetica",
                          font_size=72,
                          bold=True,
                          color=(0, 0, 0, 0),
                          anchor_x="center",
                          x=0,
                          y=-200)
示例#32
0
texturizer = FlipBookTexturizer.from_images(images + images[-1::-1], 0.075) 

group = ParticleGroup(
	controllers=[
		Fader(fade_out_start=50.0, fade_out_end=58.5)
		], 
	renderer=BillboardRenderer(texturizer))
template = Particle(
	size=(1,1,0), 
	color=(1,1,1,1), 
	)
positions = set([((x - 25) * 1.4 + (y % 2.0) * 0.7, 
                 (y - 25) * 1.4, 
				 (z - 25) * 1.4 + (y % 2.0) * 0.7) 
	for x in range(50) for y in range(50) for z in range(50)])
group.new(template)
for i in xrange(12000):
	group.new(template, position=positions.pop(), age=49.35)

win.set_visible(True)
pyglet.clock.schedule_interval(default_system.update, (1.0/40.0))
pyglet.clock.set_fps_limit(None)

label = pyglet.text.Label("Lepton", font_name="Helvetica", font_size=72, bold=True,
	color=(0,0,0,0), anchor_x="center", x=0, y=-200)

def fade_in_label(dt):
	global label
	alpha = label.color[-1] + 2
	label.color = label.color[:-1] + (min(alpha, 255),)
	pyglet.clock.schedule_once(fade_in_label, 1.0/40.0)