序言
相信很多人都看過黑客帝國電影! 簡單附幾張圖。
黑客帝國宣傳片背景的代碼雨,這就是我們今天要實現的效果;
快樂工作,娛樂學習;哈哈 !
開始之前,捋一下思路:
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>
第二步:自定義精靈類,向屏幕傳輸數據
<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>
以下為系統默認的全部字體,大家可自行選擇
第三步:設置窗口元素、字體顏色、數據下落速度
<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>
效果展示:
五彩繽紛:
代碼綠:
如果本文對你學習有所幫助——還請點贊+ 關注!
需要原代碼請私信小編(黑客帝國)