国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python和pygame實(shí)現(xiàn)煙花特效

這篇具有很好參考價(jià)值的文章主要介紹了python和pygame實(shí)現(xiàn)煙花特效。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

python和pygame實(shí)現(xiàn)煙花特效

新年來(lái)臨之際,來(lái)一個(gè)歡慶新年煙花祝賀,需要安裝使用第三方庫(kù)pygame,關(guān)于Python中pygame游戲模塊的安裝使用可見 https://blog.csdn.net/cnds123/article/details/119514520

效果圖及源碼

先看效果圖:

龍年快樂(lè)python,Python學(xué)習(xí),編程資料,python

源碼如下:

import pygame
import random
import math

# 初始化pygame
pygame.init()

# 設(shè)置窗口大小
width, height = 800, 600
screen = pygame.display.set_mode((width, height))

# 定義顏色
black = (0, 0, 0)
red = (255, 0, 0)

# 定義煙花粒子
class Particle:
    def __init__(self, x, y, color):
        self.x = x
        self.y = y
        self.color = color
        self.radius = random.randint(2, 4)
        self.angle = random.uniform(0, 2 * math.pi)
        self.speed = random.uniform(1, 3)
        self.gravity = 0.1

    def move(self):
        self.x += math.cos(self.angle) * self.speed
        self.y += math.sin(self.angle) * self.speed + self.gravity
        self.radius -= 0.1  # 粒子逐漸變小

    def draw(self):
        pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), int(self.radius))

# 定義煙花
class Firework:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
        self.particles = []
        self.exploded = False
        self.explode_height = random.randint(100, 400)  # 設(shè)置爆炸高度

        self.speed = random.randint(5, 10)  # 設(shè)置上升速度
        self.angle = math.pi / 2  # 設(shè)置上升角度為垂直向上

    def launch(self):
        if not self.exploded:
            self.y -= self.speed * math.sin(self.angle)
            if self.y <= self.explode_height:  # 到達(dá)設(shè)定高度后爆炸
                self.explode()
                self.exploded = True

    def explode(self):
        for _ in range(100):  # 爆炸產(chǎn)生的粒子數(shù)量
            self.particles.append(Particle(self.x, self.y, self.color))

    def draw(self):
        if not self.exploded:
            pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), 5)
        else:
            for particle in self.particles:
                particle.move()
                particle.draw()

#顯示文字
#font = pygame.font.Font(None, 36)  # 設(shè)置字體和大小                
font = pygame.font.Font("C:\\Windows\\Fonts\\simsun.ttc", 36)        
text = font.render("龍年快樂(lè)", True, red)  # 渲染文本
text_rect = text.get_rect(center=(width // 2, height // 2))  # 獲取文本的矩形區(qū)域

# 主循環(huán)
fireworks = []
clock = pygame.time.Clock()
running = True
while running:
    clock.tick(30)  # 控制幀率
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill(black)

    # 繪制文本
    screen.blit(text, text_rect)

    # 發(fā)射煙花
    if random.randint(1, 20) == 1:  # 控制煙花發(fā)射頻率
        fireworks.append(Firework(random.randint(0, width), height))

    # 更新煙花并繪制
    for firework in fireworks[:]:
        firework.launch()
        firework.draw()
        if firework.exploded and all(p.radius <= 0 for p in firework.particles):
            fireworks.remove(firework)

    pygame.display.flip()

pygame.quit()

pygame在屏幕上顯示字體的方法說(shuō)明

使用pygame.font.Font函數(shù)來(lái)設(shè)置字體和大小,然后使用font.render函數(shù)將文本渲染為圖像。最后,使用screen.blit函數(shù)將渲染好的文本圖像繪制到屏幕上。

pygame.font.Font(None, 字體大小)使用系統(tǒng)默認(rèn)字體,可能不支持漢字。None代表系統(tǒng)默認(rèn)字體,如pygame.font.Font(None, 36),可能不支持漢字。怎么辦?使用pygame.font. Font(“含路徑的字體名”,字體大小),指定支持漢字的字體,如:pygame.font.Font("C:\\Windows\\Fonts\\simsun.ttc", 36),simsun.ttc是宋體,字體的路徑和名稱。在windows中如何確定字體的路徑和名稱呢?參見下圖

龍年快樂(lè)python,Python學(xué)習(xí),編程資料,python

改進(jìn):添加背景音樂(lè),增添歡樂(lè)的氣氛

在“# 主循環(huán)”部分前,添加如下代碼

# 載入背景音樂(lè)
pygame.mixer.music.load("踩著開心的節(jié)奏 - 橙光音樂(lè).mp3")
pygame.mixer.music.set_volume(0.5) ?# 設(shè)置音量
pygame.mixer.music.play(-1) ?# ?播放背景音樂(lè),-1表示循環(huán)播放

其中,pygame.mixer.music.load函數(shù)加載背景音樂(lè)文件(例如名為"踩著開心的節(jié)奏 - 橙光音樂(lè).mp3"文件,并將其放在與代碼文件相同的目錄下),然后使用pygame.mixer.music.set_volume函數(shù)設(shè)置音量大?。ǚ秶鸀?.0-1.0)。最后,使用pygame.mixer.music.play函數(shù)播放背景音樂(lè),參數(shù)-1表示循環(huán)播放。

請(qǐng)你使用自己背景音樂(lè)文件替換"踩著開心的節(jié)奏 - 橙光音樂(lè).mp3",只要保證正確命名文件名和路徑即可。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-766261.html

到了這里,關(guān)于python和pygame實(shí)現(xiàn)煙花特效的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ??創(chuàng)意網(wǎng)頁(yè):HTML5 Canvas技術(shù)實(shí)現(xiàn)絢麗多彩的煙花特效教程

    ??創(chuàng)意網(wǎng)頁(yè):HTML5 Canvas技術(shù)實(shí)現(xiàn)絢麗多彩的煙花特效教程

    ? 博主: 命運(yùn)之光 ? ?? 專欄: Python星辰秘典 ?? 專欄: web開發(fā)(簡(jiǎn)單好用又好看) ?? 專欄: Java經(jīng)典程序設(shè)計(jì) ?? 博主的其他文章: 點(diǎn)擊進(jìn)入博主的主頁(yè) 前言: 歡迎踏入我的Web項(xiàng)目專欄,一段神奇而令人陶醉的數(shù)字世界! ?? 在這里,我將帶您穿越時(shí)空,揭開屬于

    2024年02月16日
    瀏覽(29)
  • Python使用Selenium自動(dòng)實(shí)現(xiàn)表單填寫之龍年紀(jì)念幣預(yù)約(附源碼,源碼有注釋解析,已測(cè)試可用

    Python使用Selenium自動(dòng)實(shí)現(xiàn)表單填寫之龍年紀(jì)念幣預(yù)約(附源碼,源碼有注釋解析,已測(cè)試可用

    聲明 :本文只做技術(shù)交流,不可用代碼為商業(yè)用途,文末有源碼下載,已測(cè)試可用。 Part 1 配置文件改寫(源碼 有詳細(xì)的注釋說(shuō)明 讀取配置文件,自己組數(shù)據(jù)庫(kù),錄入信息 配置文件 Part 2 主函數(shù) 每一期的xpath路徑都不一樣 所以需要提前去網(wǎng)站獲取 新的 Xpath 具體方法如下

    2024年02月01日
    瀏覽(57)
  • 含源碼,用Python實(shí)現(xiàn)浪漫煙花

    目錄 前言 環(huán)境準(zhǔn)備 代碼編寫 效果展示 Python實(shí)現(xiàn)浪漫的煙花特效 現(xiàn)在很多地方都不能放煙花了,既然看不到, 那作為程序猿的我們還不能自己用代碼做一個(gè)嗎? 今天就帶大家用代碼做一個(gè)煙花特效吧。 這里使用到的庫(kù)有: pygame (用于游戲的編寫)、random(用于產(chǎn)生隨機(jī)

    2024年02月12日
    瀏覽(37)
  • python基礎(chǔ)編程:python如何實(shí)現(xiàn)浪漫的煙花秀(附代碼)

    python基礎(chǔ)編程:python如何實(shí)現(xiàn)浪漫的煙花秀(附代碼)

    ?不廢話,直接上代碼: 喜歡的關(guān)注下。

    2024年02月15日
    瀏覽(30)
  • Python學(xué)習(xí)筆記-Pygame

    Python學(xué)習(xí)筆記-Pygame

    目錄 一、Pygame概述 1.安裝Pyganme 2.Pygame常用模塊介紹 2.1 display模塊常用方法 2.2 pygame.event模塊常用方法 2.3 Surface對(duì)象的常用方法 二、問(wèn)題匯總 1.窗體問(wèn)題 1.1 添加死循環(huán)之后出現(xiàn)窗體未響應(yīng)。 記述關(guān)于Pyganme開發(fā)的基本知識(shí)。 Pygame是跨平臺(tái)的python模塊,轉(zhuǎn)為電子游戲設(shè)計(jì)(包含

    2024年02月09日
    瀏覽(42)
  • 【Python實(shí)現(xiàn)坦克大戰(zhàn),帶你找回童年的快樂(lè)】附源碼

    【Python實(shí)現(xiàn)坦克大戰(zhàn),帶你找回童年的快樂(lè)】附源碼

    坦克大戰(zhàn)90版本是一款2D射擊游戲,玩家扮演一輛坦克,通過(guò)操縱坦克進(jìn)行戰(zhàn)斗。游戲場(chǎng)景通常是由迷宮狀的地圖構(gòu)成,在地圖中有各種不同類型的障礙物,如墻壁、水域、草地等,這些障礙物會(huì)對(duì)玩家的行動(dòng)和戰(zhàn)斗產(chǎn)生影響。 玩家的目標(biāo)是摧毀敵方坦克并保護(hù)自己的基地。

    2024年02月08日
    瀏覽(22)
  • 【用三大件寫出的開門煙花特效】

    【用三大件寫出的開門煙花特效】

    又到了一年一度的春節(jié)時(shí)期啦!昨天呢是北方的小年,今天是南方的小年,看到大家可以愉快的放煙花,過(guò)大年很是羨慕呀!辭舊歲,賀新春,今年我呀要放煙花,過(guò)春節(jié)! ?? 。 這個(gè)特效簡(jiǎn)單的使用了前端三件套即可完成,html,js,css,canvas整體效果如下GIF圖所示(碼內(nèi)隱

    2024年01月21日
    瀏覽(19)
  • pygame 煙花效果

    pygame 煙花效果

    pygame.init() screen_width = 800 screen_height = 600 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption(\\\'煙花效果\\\') particles = []? # 焰火粒子 def firework(x, y): ? ? num_particles = 100 ?# 每次發(fā)射的粒子數(shù)量 ? ? for _ in range(num_particles): ? ? ? ? direction = random.uniform(0, 2 * math.pi

    2024年04月23日
    瀏覽(48)
  • Python 學(xué)習(xí)之路:python3中pygame解決中文顯示

    Python 學(xué)習(xí)之路:python3中pygame解決中文顯示

    ????????這篇文章主要介紹python3中pygame解決中文顯示問(wèn)題,通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下。 ? 1.實(shí)例代碼展示: 2.實(shí)例運(yùn)行效果: 3.路徑和字體設(shè)置: ????????需要自己下載好字體,放置一個(gè)指定

    2024年02月11日
    瀏覽(21)
  • python實(shí)現(xiàn)下雪特效,并顯示

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包