欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Python繪制虎年煙花秀

 更新時間:2022年01月26日 14:57:18   作者:川川菜鳥  
2022虎年新年即將來臨,小編為大家?guī)砹艘粋€利用Python編寫的虎年煙花特效,文中的示例代碼簡潔易懂,感興趣的同學可以動手試一試

一、演示效果

b站:虎年煙花演示

二、python代碼

import pygame
from math import *
from pygame.locals import *

import random


class firew:
? ??
? ? def __init__(self, pos, color, light, size, move):
? ? ? ? self.pos = list(pos)
? ? ? ? self.color = list(color)
? ? ? ? self.light = light
? ? ? ? self.size = size
? ? ? ??
? ? ? ? self.move = list(move)
? ??
? ? def force(self, force):
? ? ? ? self.move[0] += force[0]
? ? ? ? self.move[1] += force[1]

? ? ? ? self.move[0] *= force[2]
? ? ? ? self.move[1] *= force[2]
? ??
? ? def update(self):
? ? ? ? self.pos[0] += self.move[0]
? ? ? ? self.pos[1] += self.move[1]

? ? def render(self, fenster, glitter):
? ? ? ? glitter = (glitter and random.randint(40, 100)/100) or 1
? ? ? ? c = rund( mult(self.color, self.light*glitter) )
? ? ? ? rad = int(round(self.light* self.size))
? ? ? ? rad += rad < 1
? ? ? ? #print(c)
? ? ? ??
? ? ? ? pygame.draw.circle(fenster, c, rund(self.pos), rad)
? ? ? ??

def summon(fws, pos, pre_move = [0,0]):
? ? mix.stop()
? ? #anz = random.randint(30, 250)
? ? anz = random.randint(200, 350)
? ? r = random.randint(0, 255)
? ? g = random.randint(0, 255)
? ? b = random.randint(0, 255)
? ??
? ? ? ??
? ? for i in range(anz):
? ? ? ? ang = random.randint(0, 360) ? ? ? ?
? ? ? ? speed = random.randint(100, 1000) / 250
? ? ? ??
? ? ? ? move = (cos(radians(ang))*speed + pre_move[0],
? ? ? ? ? ? ? ? sin(radians(ang))*speed + pre_move[1])

? ? ? ? light = random.randint(60, 100)/100
? ? ? ? size = random.randint(100, 300)/100
? ? ? ??
? ? ? ? fws.append( firew(pos, (r,g,b), light, size, move) )

? ? # Sound abspielen
? ? l, r = ( 0.2 + 0.8*(ww-pos[0])/ww, 0.2 + 0.8*pos[0]/ww )
? ? mix.set_volume(l, r)
? ??
? ? mix.play(sound)

? ? return fws


def rund(liste):
? ? new = []
? ? for i in liste:
? ? ? ? new.append(int(round(i)))
? ??
? ? return new

def mult(color, multi):
? ? new = list(color)
? ? new[0] *= multi
? ? new[1] *= multi
? ? new[2] *= multi
? ??
? ? return new


pygame.init()

sound = pygame.mixer.Sound("firew.wav")
mix = pygame.mixer.Channel(0)
mix.set_volume(1, 1)

bg = (0, 0, 0)
ww, wh = (1200, 800)
fenster = pygame.display.set_mode((ww, wh))
#pygame.display.set_caption("[Leertaste] für Pause; [c] für automatisches Feuerwerk")


fws = [] # firework particles
rockets = []
force = [0, 0.02, 0.985]

max_counter = random.randint(0, 200)
counter = max_counter

auto ?= True
pause = False

run = 1
clock = pygame.time.Clock()

while run:
? ? pygame.display.set_caption("[Spacebar] to pause; [c] disable automatic fireworks")
? ? counter -= (auto and not pause)

? ? if counter <= 0: # neues erstellen
? ? ? ? #pos = [random.randint(ww*1/4, ww*3/4), random.randint(wh*1/4, wh*3/5)]
? ? ? ? pos = [random.randint(ww*2/5, ww*3/5), wh]
? ? ? ? move = [random.randint(-100, 100)/100, -random.randint(800, 1500)/110]
? ? ? ??
? ? ? ? rockets.append( firew(pos, (255, 255, 255), 1, 2, move) )
? ? ? ??
? ? ? ? #fuse = random.randint(50, 150) # Zuendschnur
? ? ? ? fuse = random.randint(50, 80)
? ? ? ? rockets[-1].fuse = fuse

? ? ? ? #fws = summon(fws, pos)
? ? ? ??
? ? ? ? max_counter = random.randint(10, 100)
? ? ? ? counter = max_counter

? ? for e in pygame.event.get():
? ? ? ? if e.type == QUIT:
? ? ? ? ? ? run = 0
? ? ? ? if e.type == KEYDOWN:
? ? ? ? ? ? if e.key == K_c:
? ? ? ? ? ? ? ? auto = not auto
? ? ? ? ? ? if e.key == K_SPACE:
? ? ? ? ? ? ? ? pause = not pause
? ? ? ? ? ? if e.key == K_v:
? ? ? ? ? ? ? ? fws = []; rockets = []
? ? ? ? ? ??
? ? ? ? if e.type == MOUSEBUTTONDOWN:
? ? ? ? ? ? fws = summon(fws, e.pos)
? ? ? ??

? ? fenster.fill(bg)
? ? dellist1 = []
? ? dellist2 = []

? ? for i, rocket in enumerate(rockets):
? ? ? ? if not pause:
? ? ? ? ? ? rocket.force(force)
? ? ? ? ? ? rocket.update()
? ? ? ? ? ??
? ? ? ? rocket.render(fenster, False)
? ? ? ? rocket.fuse -= not pause
? ? ? ??
? ? ? ? if rocket.fuse < 0:
? ? ? ? ? ? dellist1.append(i)
? ? ? ? ? ? # explosion erschaffen
? ? ? ? ? ? fws = summon(fws, rocket.pos, rocket.move)
? ? ? ? ? ??
? ??
? ? for i, f in enumerate(fws):
? ? ? ? if not pause:
? ? ? ? ? ? f.force(force)
? ? ? ? ? ? f.update()


? ? ? ? f.render(fenster, True and not pause)

? ? ? ? f.light -= (not pause) * random.randint(0, 150) / 7500

? ? ? ? if f.light < 0:
? ? ? ? ? ? dellist2.append(i)

? ? dellist1.reverse()
? ? dellist2.reverse()
? ??
? ? for d in dellist1:
? ? ? ? del rockets[d]
? ? for d in dellist2:
? ? ? ? del fws[d]

? ? pygame.display.update()
? ? clock.tick(80)


pygame.quit()

演示:

三、前端代碼

效果:

到此這篇關于利用Python繪制虎年煙花秀的文章就介紹到這了,更多相關Python虎年煙花秀內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python練習之制作企業(yè)獎金計算器

    Python練習之制作企業(yè)獎金計算器

    在本篇博客中,我們將使用Python代碼解決一個企業(yè)獎金計算的問題,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-06-06
  • 詳解Python IO口多路復用

    詳解Python IO口多路復用

    這篇文章主要介紹了Python IO口多路復用的的相關資料,文中講解的非常細致,幫助大家更好的理解和學習,感興趣的朋友可以參考下
    2020-06-06
  • Flask框架單例模式實現方法詳解

    Flask框架單例模式實現方法詳解

    這篇文章主要介紹了Flask框架單例模式實現方法,結合實例形式分析了flask框架單例模式的4種實現方式與相關操作技巧,需要的朋友可以參考下
    2019-07-07
  • Python實現運行其他程序的四種方式實例分析

    Python實現運行其他程序的四種方式實例分析

    這篇文章主要介紹了Python實現運行其他程序的四種方式,結合實例形式分析了Python執(zhí)行其他程序相關模塊與函數使用技巧,需要的朋友可以參考下
    2017-08-08
  • Django路由層如何獲取正確的url

    Django路由層如何獲取正確的url

    本文介紹路由層是如何進行路由匹配的,以diango1.x版本為例,文中通過示例代碼介紹的非常詳細,文中通過示例代碼介紹的非常詳細,
    2021-07-07
  • python 讀寫文件包含多種編碼格式的解決方式

    python 讀寫文件包含多種編碼格式的解決方式

    今天小編就為大家分享一篇python 讀寫文件包含多種編碼格式的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python排序算法之希爾排序

    python排序算法之希爾排序

    這篇文章主要介紹了python排序算法之希爾排序,希爾排序,又叫“縮小增量排序”,是對插入排序進行優(yōu)化后產生的一種排序算法,需要的朋友可以參考下
    2023-04-04
  • python 自動監(jiān)控最新郵件并讀取的操作

    python 自動監(jiān)控最新郵件并讀取的操作

    這篇文章主要介紹了python 自動監(jiān)控最新郵件并讀取的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 使用Python將Mysql的查詢數據導出到文件的方法

    使用Python將Mysql的查詢數據導出到文件的方法

    今天小編就為大家分享一篇關于使用Python將Mysql的查詢數據導出到文件的方法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 機器學習10大經典算法詳解

    機器學習10大經典算法詳解

    這篇文章主要為大家詳細介紹了機器學習10大經典算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評論