用python编写了一个绘制满天星的效果代码(升级版)

原先的满天星是静止的,现在升级成动态 45 度向下移动。

下面在 paint() 中添加月亮的代码:

# 画圆
# screen -> 画在哪里
# (255, 255, 0) --> 颜色值
# (100, 100) --> 圆的圆心点
# 50 --> 圆的半径
# 0 --> 圆是否填充 0 填充 其他数字: 边的宽度
pygame.draw.circle(screen, (255, 255, 0), (100, 100), 50, 0)

# 用背景黑色画小圆覆盖在大圆上形成月牙
pygame.draw.circle(screen, (0, 0, 0), (80, 80), 50, 0)

# 画线
pygame.draw.aaline(screen, (255, 255, 0), (300, 300), (200, 200))

在 action() 中添加星星移动的代码

# 星星的移动
for i in range(0, 255):
    xx[i] += 1
    yy[i] += 1

    # 移动的循环
    if xx[i] > 800:
        xx[i] = 0
    if yy[i] > 600:
        yy[i] = 0

在 main() 主函数中加入刷新频率

# 调整刷新的频率
pygame.time.delay(10)

 

修改后的完整代码如下:

import pygame, sys, random

# 设置窗口大小,默认为 宽:800  高:600
screen = pygame.display.set_mode((800, 600))

# 图形绘制
def paint():

    # 画圆
    # screen -> 画在哪里
    # (255, 255, 0) --> 颜色值
    # (100, 100) --> 圆的圆心点
    # 50 --> 圆的半径
    # 0 --> 圆是否填充 0 填充 其他数字: 边的宽度
    pygame.draw.circle(screen, (255, 255, 0), (100, 100), 50, 0)

    # 用背景黑色画小圆覆盖在大圆上形成月牙
    pygame.draw.circle(screen, (0, 0, 0), (80, 80), 50, 0)

    # 画线
    pygame.draw.aaline(screen, (255, 255, 0), (300, 300), (200, 200))

    # 设置字体,字体初始化
    pygame.font.init()

    # 设置字体样式
    ft = pygame.font.Font("font/msyhbd.ttc", 28)

    # 星星文本
    for  i in range(0, 100):
        R = random.randint(0, 255)
        G = random.randint(0, 255)
        B = random.randint(0, 255)
        wd = ft.render("★", True, (R, G, B))

        # 绘制星星
        screen.blit(wd, (xx[i], yy[i]))

# 定义列表和初始化函数
xx = []
yy = []

def init():
    # 初始化列表
    for i in range(0, 100):
        xx.append(random.randint(0, 800))
        yy.append(random.randint(0, 600))

# 业务函数
def action():
    # 监听退出事件
    for event in pygame.event.get():
        # 判断是否退出
        if event.type == pygame.QUIT:
            sys.exit()

    # 星星的移动
    for i in range(0, 100):
        xx[i] += 1
        yy[i] += 1

        # 移动的循环
        if xx[i] > 800:
            xx[i] = 0
        if yy[i] > 600:
            yy[i] = 0

# 主函数
def main():

    # 设置窗口标题
    pygame.display.set_caption("满天星")

    # 主循环
    while True:
        # 填充窗口的背景色
        screen.fill((0, 0, 0))

        # 调用逻辑层
        action()

        # 绘制星星
        paint()

        # 调整刷新的频率
        pygame.time.delay(10)

        # 更新屏幕
        pygame.display.update()

if __name__ == '__main__':
    # 初始化函数
    init()

    # 调用主函数
    main()

运后的效果如下:

相关说明:

1、终身VIP会员无限制任意下载,免积分。即前往开通>>

2、下载积分可通过日常 签到 以及 积分兑换 等途径获得!

3、本站资源无解压密码.

4、本站资源大多存储在云盘,如出现链接失效请评论反馈。

5、本站提供的免费源码、模板、软件工具等其他资源,均不包含技术服务,请大家谅解!资源仅供参考学习只用,请勿用于任何商业用途,请支持正版。

6、源码、模板等资源会随着技术、环境的升级而存在部分问题,还请慎重选择。

本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
南方小强 » 用python编写了一个绘制满天星的效果代码(升级版)

发表评论