網(wǎng)站首頁 編程語言 正文
1. 介紹
前面我們嘗試通過python實(shí)現(xiàn)了代碼雨以及字母隨機(jī)閃爍的效果,這次,我們?cè)賮韺?shí)現(xiàn)一個(gè)代碼的線性掃面。
同樣的,此次我們?nèi)匀皇鞘褂?0行代碼來實(shí)現(xiàn)這個(gè)效果。
此次我們只是用pygame
與random
兩個(gè)包,首先,將他們導(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
最后在一個(gè)循環(huá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) # 字母掃描 screen.blit(text, (i * 15, cols[i] * 15)) cols[i] = (cols[i]+1)%40 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) # 字母掃描 screen.blit(text, (i * 15, cols[i] * 15)) cols[i] = (cols[i]+1)%40 pygame.display.flip()
截止到現(xiàn)在,我們已經(jīng)學(xué)會(huì)了用簡簡單單的30行代碼實(shí)現(xiàn)代碼雨,閃爍代碼以及線性掃描三種炫酷的特效了,相信大家在這個(gè)過程中也對(duì) python 有了一個(gè)最初步的理解與認(rèn)識(shí),
原文鏈接:https://juejin.cn/post/7126947051769692167
相關(guān)推薦
- 2023-05-24 Pytorch:Conv2d卷積前后尺寸詳解_python
- 2022-11-29 C#復(fù)制數(shù)組的兩種方式及效率比較_C#教程
- 2022-07-02 golang通過node_exporter監(jiān)控GPU及cpu頻率、溫度的代碼_Golang
- 2022-07-12 ERROR:ORA-12543: TNS:destination host unreachable
- 2022-12-04 react?component?function組件使用詳解_React
- 2022-12-10 C++?Boost?Spirit精通教程_C 語言
- 2022-02-02 ionic 禁止橫屏處理
- 2022-10-23 Go語言數(shù)據(jù)結(jié)構(gòu)之選擇排序示例詳解_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- 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錯(cuò)誤: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)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支