網站首頁 編程語言 正文
效果圖
1. 介紹
屏幕上隨機閃爍的代碼塊,一定能滿足我們對于電影中黑客的一絲絲設想,這次,讓我們用簡簡單單的30行python代碼,實現這個效果。
前面我們借助 python 實現了代碼雨的效果,這一次,我們同樣借助pygame
與random
兩個包,實現代碼閃爍的效果。
此次我們只是用pygame
與random
兩個包,首先,將他們導入:
import pygame import random
之后,我們進行pygame界面的初始化工作:
# 參數 SCREENSIZE=(600,600) BLACK=(0,0,0,13) # 初始化 pygame.init() font = pygame.font.SysFont('宋體', 20) screen = pygame.display.set_mode(SCREENSIZE) surface = pygame.Surface(SCREENSIZE, flags=pygame.SRCALPHA) pygame.Surface.convert(surface) surface.fill(BLACK) screen.fill(BLACK)
之后設置一下我們字體的相關內容:
# 內容 lib=[chr(i) for i in range(48,48+10)] + [chr(i) for i in range(97,97+26)] # [0-9 a-z] texts = [font.render(l, True, (0, 255, 0)) for l in lib] cols = list(range(40)) # 字體15, 窗口600
最后在一個循環中,更新界面并實現閃爍的代碼打印效果:
while True: for event in pygame.event.get(): if event.type == pygame.QUIT: exit() pygame.time.delay(33) screen.blit(surface, (0, 0)) for i in range(n:=len(cols)): text = random.choice(texts) # 代碼閃爍 x,y=random.randint(0,n-1),random.randint(0,n-1) screen.blit(text,(x*15,cols[y]*15)) pygame.display.flip()
2. 完整代碼
完整代碼如下:
import pygame import random # 參數 SCREENSIZE=(600,600) BLACK=(0,0,0,13) # 初始化 pygame.init() font = pygame.font.SysFont('宋體', 20) screen = pygame.display.set_mode(SCREENSIZE) surface = pygame.Surface(SCREENSIZE, flags=pygame.SRCALPHA) pygame.Surface.convert(surface) surface.fill(BLACK) screen.fill(BLACK) # 內容 lib=[chr(i) for i in range(48,48+10)] + [chr(i) for i in range(97,97+26)] # [0-9 a-z] texts = [font.render(l, True, (0, 255, 0)) for l in lib] cols = list(range(40)) # 字體15, 窗口600 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: exit() pygame.time.delay(33) screen.blit(surface, (0, 0)) for i in range(n:=len(cols)): text = random.choice(texts) # 隨機閃爍 x,y=random.randint(0,n-1),random.randint(0,n-1) screen.blit(text,(x*15,cols[y]*15)) pygame.display.flip()
原文鏈接:https://juejin.cn/post/7126567549679960078
- 上一篇:C++實現并優化異常系統_C 語言
- 下一篇:關于R語言包的升級與降級問題_R語言
相關推薦
- 2023-02-07 Pytorch中的Broadcasting問題_python
- 2022-08-05 詳解C#通過反射獲取對象的幾種方式比較_C#教程
- 2023-04-18 Android粒子線條效果實現過程與代碼_Android
- 2022-06-06 Python實現文字pdf轉換圖片pdf效果_python
- 2023-01-09 初識C++?Vector模板與實例化原理_C 語言
- 2022-09-04 React18中請求數據的官方姿勢適用其他框架_React
- 2022-05-12 Kotlin 判斷泛型類型 reified
- 2022-11-18 一文搞懂正則表達式基礎語法以及如何應用_正則表達式
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支