網(wǎng)站首頁 編程語言 正文
效果圖
1. 介紹
屏幕上隨機(jī)閃爍的代碼塊,一定能滿足我們對于電影中黑客的一絲絲設(shè)想,這次,讓我們用簡簡單單的30行python代碼,實(shí)現(xiàn)這個效果。
前面我們借助 python 實(shí)現(xiàn)了代碼雨的效果,這一次,我們同樣借助pygame
與random
兩個包,實(shí)現(xiàn)代碼閃爍的效果。
此次我們只是用pygame
與random
兩個包,首先,將他們導(dǎo)入:
import pygame import random
之后,我們進(jìn)行pygame界面的初始化工作:
# 參數(shù) 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)
之后設(shè)置一下我們字體的相關(guān)內(nèi)容:
# 內(nèi)容 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
最后在一個循環(huán)中,更新界面并實(shí)現(xiàn)閃爍的代碼打印效果:
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 # 參數(shù) 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) # 內(nèi)容 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) # 隨機(jī)閃爍 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
相關(guān)推薦
- 2022-09-01 C語言中static與sizeof查缺補(bǔ)漏篇_C 語言
- 2022-12-12 Kotlin?by?lazy關(guān)鍵字深入探究實(shí)現(xiàn)原理_Android
- 2022-06-25 React?Hooks與setInterval的踩坑問題小結(jié)_React
- 2022-12-04 C#實(shí)現(xiàn)Oracle批量寫入數(shù)據(jù)的方法詳解_C#教程
- 2023-03-23 Android進(jìn)階NestedScroll嵌套滑動機(jī)制實(shí)現(xiàn)吸頂效果詳解_Android
- 2022-01-14 2022年了--你還不會手寫promise? 完成promise的所有實(shí)現(xiàn)
- 2022-09-30 Flutter?日歷組件簡單實(shí)現(xiàn)_Android
- 2023-05-29 postgresql數(shù)據(jù)庫配置文件postgresql.conf,pg_hba.conf,pg_id
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支