大鹏哥 发表于 2022-7-13 11:06:31

在行空板上显示代码雨(二)

本帖最后由 大鹏哥 于 2022-7-13 13:03 编辑


![行空板上运行中文代码雨效果图](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/101959li4lzpwg04d03wg2.png)
# 创意起源
在发布上一篇“在行空板上显示代码雨(一)”帖子的时候,当时就想着用中文去显示代码雨的效果,所以写了这篇帖子,还是老规矩先上展示效果哈哈哈。

# 作品展示

https://www.bilibili.com/video/BV1ja411Q7wF?spm_id_from=333.999.0.0

# 编写程序
```
import random #导入random库
import pygame #导入pygame库
from pygame.locals import * # 导入所有pygame.locals里的变量(比如下面大写的QUIT变量)
from sys import exit#从sys模组中引入exit即退出功能
#行空板的屏幕尺寸是240*320,以下屏幕设置可以选择是否全屏
screen_width=240#设置屏幕宽度
screen_height=320 #设置屏幕高度

rain_num = 6#设置代码雨的列数量


pygame.init()# 初始化pygame

# 访问显示设备,创建一个窗口
# 使用 pygame.display.set_mode() 创建的新显示界面会自动替换掉旧的
# RESIZABLE 创建一个可调整尺寸的窗口
screen=pygame.display.set_mode(, RESIZABLE)

pygame.display.set_caption("中文代码雨")# 设置标题(仅限于电脑端显示)

#设置匹配系统的字体
#设置字体为汉仪旗黑字体,查看行空板下的pygame自带字体可以用“print(pygame.font.get_fonts())”输出查看
font_name = pygame.font.match_font('hyqihei')
#设置字号为36号
font = pygame.font.Font(font_name, 36)      

# 创建一个图像对象,SRCALPHA表示每个像素包含一个 alpha 通道
bgSurface = pygame.Surface((screen_width, screen_height), flags=pygame.SRCALPHA)

# 使用纯色填充 Surface 对象
bgSurface.fill(pygame.Color(0, 0, 0, 16))

# 使用纯色填充窗口
screen.fill((0, 0, 0))

# 按屏幕的宽带计算可以在画板上放几列坐标并生成一个列表
drops =

while True:
    # 从队列中获取事件
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
            pygame.quit()
            exit()
      elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:    #按下A键停止
               exit()

    pygame.time.delay(100)# 暂停100ms,这里修改时间可以改变刷新刷新快慢。

    # 将图片放到窗口的原点坐标上,blit()不会更新屏幕-它在缓冲区中绘制图像,和flip()一起使用。
    screen.blit(bgSurface, (0, 0))

    #在新Surface上绘制文本
    for i in range(rain_num):
      str1 = "鹏霆晓儒静双丽鹤韵谊洁润成翔隆高德雅" #设置中文字库
      letter = list(str1)#设置中文字库列表
      texts = [
      font.render(str(letter), True, (255, 0, 0)) for i in range(18)
      ]
      text = random.choice(texts)#从中文字库的列表中获取一个随机元素,可以设置字体颜色
      screen.blit(text, (i * 40, drops * 40))# 将字体按照当前下雨的位置刷新到窗口上

      # 更新下雨的坐标,采用随机值,超过界面高度或随机数,下雨位置置0。
      drops += 1
      if drops * 40 > screen_height or random.random() > 0.95:
            drops = 0

    # 更新屏幕
    pygame.display.flip()
      ```

# 操作步骤详细介绍
### 1.打开mind+的python模式,在“项目”下拉框里找到“另存项目”,点击“另存项目”保存到命名好的文件夹内。
![在“项目”下拉框里找到“另存项目”并点击](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/101044wpr5p1x6xjhzukxj.png?)
![保存sb3文件到指定的文件夹内](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/104727r556ex0amz4rmj06.png?)
### 2.在“项目中的文件”这里新建一个py文件,比如命名为zhongwendaimayu.py然后双击打开。
![点击“+”新建py文件](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/101130lpmgpjtj5tccckbt.png?)
![新建文件命名为zhongwendaimayu.py](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/104747q0043eebpd8e4780.png?)
### 3.把代码复制到zhongwendaimayu.py文件中。
![复制代码到zhongwendaimayu.py文件中](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/104809bdahdycyhr8u4jya.png?)
### 4.先点击“终端”,弹出“连接远程终端”之后点击“10.1.2.3”进行连接。
![点击“终端”,弹出“连接远程终端”](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/104833dqqqq8qxl8hsusuh.png?)
![成功连接行空板终端](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/104845smcc1ppj9bc117pa.png?)
### 5.点击“运行”,稍等片刻即可在行空板上显示中文代码雨效果。
![上传程序至行空板并运行](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/104858ty7x64d4m8797y95.png?)
![行空板上显示中文代码雨效果](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/103622yc55ph5waw45w5mw.png?)
### 6.如果需要停止程序运行,按下行空板上的A键即可停止。
![按下A键停止程序](https://imagemc.dfrobot.com.cn/data/attachment/album/202207/13/101936k100pw1ypei1svv0.png?)



Ski 发表于 2022-7-14 15:42:00

{:6_213:}{:6_213:}{:5_121:}
页: [1]
查看完整版本: 在行空板上显示代码雨(二)