用python代码画出一片星空,python满天星绘制流程图

大家好,小编来为大家解答以下问题,用python代码画出一片星空,python满天星绘制流程图,今天让我们一起来看看吧!

Source code download: 本文相关源码

"""
满天星:
绘制100颗小星星:随机产生的
1.小星星移动:  左上角到右下角移动  循环形式
2.随机颜色 闪烁 修改一次
"""
import pygame,sys
# 导入随机函数模块
import random

# 窗体
screen = pygame.display.set_mode((800,600),0,0)
#坐标值
xx = []
yy = []
# 加载图片(如果需要替换成好看的背景图片)
back = pygame.image.load("1.jpg")

"""
第六部分:初始化函数
"""
def init():
    # 循环迭代初始化
    for i in range(0,100):
        xx.append(random.randint(0,800))
        yy.append(random.randint(0,800))

"""
第四部分:业务逻辑处理区域
"""
def action():
    # 4.1 循环遍历所有的事件监听
    for event in pygame.event.get():
        # 4.2 判断是否退出系统
        if event.type == pygame.QUIT:
            sys.exit()
    # 星星移动
    for i in range(len(xx)):
        # 1.更改坐标值
        xx[i] += 1
        yy[i] += 1
        # 2.循环
        if xx[i] > 800:
            xx[i] = 0
        if yy[i] > 800:
            yy[i] = 0

"""
第五部分:图形图案绘制
"""
def paint():
    # 5.1 初始化字体
    pygame.font.init()
    # 5.2 设置字体样式(ps: wryh.ttf是字体库的文件,该文件已经上传,下载后和项目文件放到一个文件夹中)
    font = pygame.font.Font("wryh.ttf", 28)

    for i in range(len(xx)):
        R = random.randint(0, 255)
        G = random.randint(0, 255)
        B = random.randint(0, 255)
        # 5.3 设置字体内容以及颜色
        fontRead = font.render("*", True, (R, G, B))
        # 5.4 绘制小星星
        screen.blit(fontRead, (xx[i], yy[i]))

    # 月亮
    pygame.draw.circle(
        screen,  # 绘制在哪个窗体上
        (255, 255, 255),  # 圆的颜色
        (100, 100),  # 圆的圆心点坐标
        50,  # 圆的半径
        0)  # 圆的线宽 0默认是实心圆  >0 空心圆
    pygame.draw.circle(
        screen,  
        (0, 0, 0),  
        (80, 80),  
        50,  
        0)  


"""
第一部分 主函数(设置窗口信息)
"""
def menu():
    # 1.设置窗口标题
    pygame.display.set_caption("满天星")
    # 2.死循环
    while True:
        # 3.填充背景颜色(R,G,B)
        screen.fill((0,0,0))
        # 绘制哪张图,以及起始点位置
        # screen.blit(back,(0,0))
        # 4.调用业务逻辑模块
        action()
        # 5.调用图形图像绘制
        paint()
        # 控制刷新频率,设置每隔10毫秒刷新一次屏幕
        pygame.time.delay(10)
        # 6.刷新屏幕
        pygame.display.update()


if __name__ == '__main__':
    init()
    menu()

 运行效果贴图展示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值