序言
相信很多人都看過黑客帝國電影劣欢! 簡單附幾張圖棕诵。
黑客帝國宣傳片背景的代碼雨,這就是我們今天要實現(xiàn)的效果凿将;
快樂工作校套,娛樂學(xué)習(xí);哈哈 牧抵!
開始之前搔确,捋一下思路:
1、需要一個方形界面灭忠,這里選用pygame模塊
2膳算、根據(jù)圖三,需要界面由上而下持續(xù)有數(shù)據(jù)塊滑落
3弛作、各個數(shù)據(jù)塊滑落有時間差(有快有慢)涕蜂、顏色渲染
? ? ? ? ? ? ?需要安裝一下pygame模塊
(安裝指令:pip install pygame)
第一步: 初始化布局,設(shè)置界面停留
import pygame
from pygame.locals import *
SCREEN_WIDTH = 1000? # 窗口的寬度
SCREEN_HEIGHT = 650 # 窗口的高度
FREQUENCE = 50 # 頻率
# 初始化
pygame.init()
# 設(shè)置窗口組件大小及位置
screen = pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT))
# 窗口標(biāo)題
pygame.display.set_caption("邏輯鯨落的黑客帝國 ^_^ ")
# 創(chuàng)建計時器對象 -> 可以控制游戲循環(huán)的頻率
clock = pygame.time.Clock()
# 精靈 -> 可以看成是一個容器
group = pygame.sprite.Group()
group_count = SCREEN_WIDTH // FONT_SIZE
# 循環(huán) -> 意味著游戲的正式開始映琳!也意味著讓程序長時間停留至界面
while True :
? ? # 指定循環(huán)頻率 -> 每秒循環(huán)50次
? ? time = clock.tick(FREQUENCE)
? ? # 監(jiān)聽用戶事件
? ? for event in pygame.event.get() :
? ? ? ? # 判斷用戶是否點擊了關(guān)閉按鈕
? ? ? ? if event.type == QUIT :
? ? ? ? ? ? # 退出
? ? ? ? ? ? pygame.quit()
? ? ? ? ? ? # 終止當(dāng)前正在執(zhí)行的Python程序
? ? ? ? ? ? exit()
? ? # 更新屏幕顯示
? ? pygame.display.update()? ?
第二步:自定義精靈類机隙,向屏幕傳輸數(shù)據(jù)
FONT_NAME = "corbel"
# 字體大小
FONT_SIZE = 25
class Word(pygame.sprite.Sprite):
? ? def __init__(self, bornposition):
? ? ? ? pygame.sprite.Sprite.__init__(self)
? ? ? ? self.value = randomvalue()
? ? ? ? # 加載系統(tǒng)默認(rèn)字體
? ? ? ? self.font = pygame.font.SysFont(FONT_NAME, FONT_SIZE)
? ? ? ? # 傳輸?shù)狡聊?/p>
? ? ? ? self.img = self.font.render(str(self.value), True, randomcolor())
? ? ? ? self.speed = randomspeed()
? ? ? ? # 獲取大小 設(shè)置速度
? ? ? ? self.rect = self.img.get_rect()
? ? ? ? # 設(shè)置顯示的位置為左上角
? ? ? ? self.rect.topleft = bornposition
? ? def update(self):
? ? ? ? # 將對象進(jìn)行移動
? ? ? ? self.rect = self.rect.move(0, self.speed)
? ? ? ? # 如果移動太遠(yuǎn) 大于 窗口高度
? ? ? ? if self.rect.top > SCREEN_HEIGHT:
? ? ? ? ? ? # 刪除
? ? ? ? ? ? self.kill()
以下為系統(tǒng)默認(rèn)的全部字體,大家可自行選擇
第三步:設(shè)置窗口元素、字體顏色萨西、數(shù)據(jù)下落速度
from random import randint
import random
# 代碼下落速度
LOW_SPEED = 5
HIGH_SPEED = 10
# 隨機顏色
def randomcolor():
? ? # 轉(zhuǎn)換顏色
? ? return (randint(0,255),randint(0,255),randint(0,255))
# 隨機速度
def randomspeed():
? ? return randint(LOW_SPEED, HIGH_SPEED)
# 隨機名字
def randomoname():
? ? # 序列
? ? array = ["T","o","n","y"]
? ? # 隨機選取一個元素
? ? return random.choice(array)
第四步: 調(diào)用有鹿、窗口精靈繪制
for i in range(0,group_count) :
? ? ? ? group.add(Word((i * FONT_SIZE,-FONT_SIZE)))
? ? group.update()
? ? # 繪制幀
? ? group.draw(screen)
效果展示:
五彩繽紛:
代碼綠:
在這個浮躁的時代;竟然還有人能堅持篇篇原創(chuàng)谎脯;
如果本文對你學(xué)習(xí)有所幫助-可以點贊??+ 關(guān)注葱跋!將持續(xù)更新更多新的文章。
支持原創(chuàng)。感謝娱俺!