当前位置: 首页 > news >正文

重庆网站建设优化阳江网络公司

重庆网站建设优化,阳江网络公司,公司报备网站,wordpress函数大全Pygame 绘制烟花的基本原理 1#xff0c;发射阶段#xff1a;在这一阶段烟花的形状是线性向上#xff0c;通过设定一组大小不同、颜色不同的点来模拟“向上发射” 的运动运动#xff0c;运动过程中 5个点被赋予不同大小的加速度#xff0c;随着时间推移#xff0c;后面的…Pygame 绘制烟花的基本原理 1发射阶段在这一阶段烟花的形状是线性向上通过设定一组大小不同、颜色不同的点来模拟“向上发射” 的运动运动运动过程中 5个点被赋予不同大小的加速度随着时间推移后面的点会赶上前面的点最终所有点会汇聚在一起处于 绽放准备阶段。 2烟花绽放烟花绽放这个阶段是由一个点分散多个点向不同方向发散并且每个点的移动轨迹可需要被记录目的是为了追踪整个绽放轨迹。 3烟花凋零此阶段负责描绘绽放后烟花的效果绽放后的烟花而在每一时刻点的下降速度和亮度代码中也叫透明度是不一样的因此在代码里将烟花绽放后将每个点赋予两个属性分别为重力向量和生命周期来模拟烟花在不同时期时不同的展现效果。 # Author : 小红牛 # 微信公众号WdPython import math from random import randint, uniform, choice import pygamevector pygame.math.Vector2 gravity vector(0, 0.3) DISPLAY_WIDTH 1100 DISPLAY_HEIGHT 700trail_colours [(45, 45, 45), (60, 60, 60), (75, 75, 75),(125, 125, 125), (150, 150, 150)] dynamic_offset 1 static_offset 5class Firework:def __init__(self):self.colour (randint(0, 255), randint(0, 255), randint(0, 255))self.colours ((randint(0, 255), randint(0, 255), randint(0, 255)), (randint(0, 255), randint(0, 255), randint(0, 255)),(randint(0, 255), randint(0, 255), randint(0, 255)))self.firework Particle(randint(0, DISPLAY_WIDTH), DISPLAY_HEIGHT, True,self.colour) # Creates the firework particleself.exploded Falseself.particles []self.min_max_particles vector(100, 225)def update(self, win): # called every frameif not self.exploded:self.firework.apply_force(gravity)self.firework.move()for tf in self.firework.trails:tf.show(win)self.show(win)if self.firework.vel.y 0:self.exploded Trueself.explode()else:for particle in self.particles:particle.apply_force(vector(gravity.x uniform(-1, 1) / 20, gravity.y / 2 (randint(1, 8) / 100)))particle.move()for t in particle.trails:t.show(win)particle.show(win)def explode(self):amount randint(self.min_max_particles.x, self.min_max_particles.y)for i in range(amount):self.particles.append(Particle(self.firework.pos.x, self.firework.pos.y, False, self.colours))def show(self, win):pygame.draw.circle(win, self.colour, (int(self.firework.pos.x), int(self.firework.pos.y)), self.firework.size)def remove(self):if self.exploded:for p in self.particles:if p.remove is True:self.particles.remove(p)if len(self.particles) 0:return Trueelse:return Falseclass Particle:def __init__(self, x, y, firework, colour):self.firework fireworkself.pos vector(x, y)self.origin vector(x, y)self.radius 20self.remove Falseself.explosion_radius randint(5, 18)self.life 0self.acc vector(0, 0)# trail variablesself.trails [] # stores the particles trail objectsself.prev_posx [-10] * 10 # stores the 10 last positionsself.prev_posy [-10] * 10 # stores the 10 last positionsif self.firework:self.vel vector(0, -randint(17, 20))self.size 5self.colour colourfor i in range(5):self.trails.append(Trail(i, self.size, True))else:self.vel vector(uniform(-1, 1), uniform(-1, 1))self.vel.x * randint(7, self.explosion_radius 2)self.vel.y * randint(7, self.explosion_radius 2)self.size randint(2, 4)self.colour choice(colour)for i in range(5):self.trails.append(Trail(i, self.size, False))def apply_force(self, force):self.acc forcedef move(self):if not self.firework:self.vel.x * 0.8self.vel.y * 0.8self.vel self.accself.pos self.velself.acc * 0if self.life 0 and not self.firework: # check if particle is outside explosion radiusdistance math.sqrt((self.pos.x - self.origin.x)** 2 (self.pos.y - self.origin.y) ** 2)if distance self.explosion_radius:self.remove Trueself.decay()self.trail_update()self.life 1def show(self, win):pygame.draw.circle(win, (self.colour[0], self.colour[1], self.colour[2], 0), (int(self.pos.x), int(self.pos.y)),self.size)def decay(self): # random decay of the particlesif 50 self.life 10: # early stage their is a small chance of decayran randint(0, 30)if ran 0:self.remove Trueelif self.life 50:ran randint(0, 5)if ran 0:self.remove Truedef trail_update(self):self.prev_posx.pop()self.prev_posx.insert(0, int(self.pos.x))self.prev_posy.pop()self.prev_posy.insert(0, int(self.pos.y))for n, t in enumerate(self.trails):if t.dynamic:t.get_pos(self.prev_posx[n dynamic_offset],self.prev_posy[n dynamic_offset])else:t.get_pos(self.prev_posx[n static_offset],self.prev_posy[n static_offset])class Trail:def __init__(self, n, size, dynamic):self.pos_in_line nself.pos vector(-10, -10)self.dynamic dynamicif self.dynamic:self.colour trail_colours[n]self.size int(size - n / 2)else:self.colour (255, 255, 200)self.size size - 2if self.size 0:self.size 0def get_pos(self, x, y):self.pos vector(x, y)def show(self, win):pygame.draw.circle(win, self.colour, (int(self.pos.x), int(self.pos.y)), self.size)def update(win, fireworks):for fw in fireworks:fw.update(win)if fw.remove():fireworks.remove(fw)pygame.display.update()# 主函数 def main():pygame.init()pygame.display.set_caption(2024新年快乐)win pygame.display.set_mode((DISPLAY_WIDTH, DISPLAY_HEIGHT))myfont pygame.font.Font(C:\Windows\Fonts\simkai.ttf, 80)text myfont.render(2024新年快乐, False, (255, 0, 0))# 将文字绘制到屏幕上win.blit(text, (100, 100))pygame.display.flip()clock pygame.time.Clock()fireworks [Firework() for i in range(3)] # create the first fireworksrunning Truewhile running:clock.tick(60)for event in pygame.event.get():if event.type pygame.QUIT:running Falseif event.type pygame.KEYDOWN:# Change game speed with number keysif event.key pygame.K_1:fireworks.append(Firework())if event.key pygame.K_2:for i in range(10):fireworks.append(Firework())win.fill((20, 20, 30)) # draw backgroundif randint(0, 20) 1: # create new fireworkfireworks.append(Firework())update(win, fireworks)# stats for fun# total_particles 0# for f in fireworks:# total_particles len(f.particles)# print(fFireworks: {len(fireworks)}\nParticles: {total_particles}\n\n)pygame.quit()quit() main()完毕感谢您的收看 ----------★★历史博文集合★★---------- 我的零基础Python教程Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具
http://www.pierceye.com/news/674248/

相关文章:

  • 闽侯县建设局网站营销网站seo推广费用
  • 长乐区住房和城乡建设局网站测网站打开的速度的网址
  • 手机网站产品展示模板wordpress评论改成微博
  • 后盾网原创实战网站建设教程做网站和编程序
  • 东莞整站优化推广公司找火速如何做网站连接
  • 做ppt的模板的网站想学服装设计怎么入门
  • 短视频网站如何做推广网站申请域名
  • 餐饮行业网站建设风格建网站费用
  • 北京网站建设与维护石家庄做淘宝网站
  • seo网站关键词优化费用linux wordpress 伪静态
  • 朋友做的网站图片不显示不出来的网站空间哪家公司的好
  • 外贸网站建设公司价格最全做暖暖网站
  • 手机网站建设代理商怎么自己开一个网站
  • 国内比较高端的设计网站如何通过html做网站
  • 做一个网站怎么赚钱网站建设方向
  • 岳阳网站建设哪里便宜连云港网站制作
  • 企业网站内容运营方案策划网络运营是什么意思
  • 深圳建网站信科南京医院网站建设
  • 新开最好的传奇网站js 网站跳转
  • 阿里巴巴国际站做2个网站有用网站制作是怎么学的
  • 做的网站图片不显示企业邮箱什么格式
  • 今天重大新闻优化设计答案五年级下册
  • 网站建设市场报价建站哪家好 discuz
  • 没后台的网站怎么做优化中国联通网站备案
  • 金融产品做网站推广网站访问者
  • 安徽省工程建设安全协会网站广州网站设计皆赞乐云践新
  • 成都建设网上商城平台公司深圳网站建设推广优化seo
  • 数据服务网站开发国家重点建设裤网站
  • 做兼职上哪个网站wordpress相册灯箱弹窗
  • 微信编辑器做网站网页设计专业开设院校