Python黑科技01-實現黑客帝國電影代碼雨(附原碼)

序言

相信很多人都看過黑客帝國電影! 簡單附幾張圖。


Python黑科技01-實現黑客帝國電影代碼雨(附原碼)


黑客帝國宣傳片背景的代碼雨,這就是我們今天要實現的效果;

快樂工作,娛樂學習;哈哈 !

開始之前,捋一下思路:

1、需要一個方形界面,這裡選用pygame模塊

2、根據圖三,需要界面由上而下持續有數據塊滑落

3、各個數據塊滑落有時間差(有快有慢)、顏色渲染

需要安裝一下pygame模塊

安裝指令:pip install pygame

第一步: 初始化佈局,設置界面停留

註釋寫的很詳細,有不懂的可以下方隨時諮詢我

<code>import pygame
from pygame.locals import *

SCREEN_WIDTH = 1000  # 窗口的寬度
SCREEN_HEIGHT = 650 # 窗口的高度
FREQUENCE = 50 # 頻率

# 初始化
pygame.init()
# 設置窗口組件大小及位置
screen = pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT))
# 窗口標題
pygame.display.set_caption("邏輯Tony的黑客帝國 ^_^ ")
# 創建計時器對象 -> 可以控制遊戲循環的頻率
clock = pygame.time.Clock()
# 精靈 -> 可以看成是一個容器
group = pygame.sprite.Group()
group_count = SCREEN_WIDTH // FONT_SIZE
# 循環 -> 意味著遊戲的正式開始!也意味著讓程序長時間停留至界面
while True :
    # 指定循環頻率 -> 每秒循環50次
    time = clock.tick(FREQUENCE)
    # 監聽用戶事件
    for event in pygame.event.get() :
        # 判斷用戶是否點擊了關閉按鈕
        if event.type == QUIT :
            # 退出
            pygame.quit()
            # 終止當前正在執行的Python程序
            exit()
    # 更新屏幕顯示
    pygame.display.update()
/<code> 


Python黑科技01-實現黑客帝國電影代碼雨(附原碼)


第二步:自定義精靈類,向屏幕傳輸數據

<code>FONT_NAME = "corbel"
# 字體大小
FONT_SIZE = 25

class Word(pygame.sprite.Sprite):
    def __init__(self, bornposition):
        pygame.sprite.Sprite.__init__(self)
        self.value = randomvalue()
        # 加載系統默認字體
        self.font = pygame.font.SysFont(FONT_NAME, FONT_SIZE)
        # 傳輸到屏幕
        self.image = self.font.render(str(self.value), True, randomcolor())
        self.speed = randomspeed()
        # 獲取大小 設置速度
        self.rect = self.image.get_rect()
        # 設置顯示的位置為左上角
        self.rect.topleft = bornposition
    def update(self):
        # 將對象進行移動
        self.rect = self.rect.move(0, self.speed)
        # 如果移動太遠 大於 窗口高度
        if self.rect.top > SCREEN_HEIGHT:
            # 刪除
            self.kill()
   /<code>

以下為系統默認的全部字體,大家可自行選擇

Python黑科技01-實現黑客帝國電影代碼雨(附原碼)


第三步:設置窗口元素、字體顏色、數據下落速度

<code>from random import randint
import random

# 代碼下落速度
LOW_SPEED = 5
HIGH_SPEED = 10

# 隨機顏色
def randomcolor():
    # 轉換顏色
    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)
/<code>

第四步: 調用、窗口精靈繪製

<code>    # 用純色填充表面
    screen.fill((0,0,0))
    for i in range(0,group_count) :
        group.add(Word((i * FONT_SIZE,-FONT_SIZE)))
    group.update()
    # 繪製幀
    group.draw(screen)
/<code>

效果展示:

五彩繽紛:


Python黑科技01-實現黑客帝國電影代碼雨(附原碼)


代碼綠:


Python黑科技01-實現黑客帝國電影代碼雨(附原碼)


如果本文對你學習有所幫助——還請點贊+ 關注!

需要原代碼請私信小編(黑客帝國)

將持續更新更多新的文章。感謝!


分享到:


相關文章: