用pygame做一个简单的python小游戏—七彩同心圆
admin
2023-07-30 19:57:04
0

玩法:每次点击鼠标时,会以鼠标为圆心,不断向外扩展圆(类似于水波浪的扩散),从而形成一个同心圆,并达到随机大小后停止扩展。其中每个同心圆的颜色都是随机的。

import pygame, random, sys, time

pygame.init()
screen = pygame.display.set_mode([600, 400])
screen.fill((255, 255, 255))
radiusr = 0
arrradiusr = [0] * 10  # 圆的半径
arraddradiusr = [0] * 10  # 圆的半径增量
arrradiusbool = [False] * 10  # 圆是否存在   False代表该索引值下的圆不存在,True代表存在
arrradiusx = [0] * 10  # 圆的坐标x轴
arrradiusy = [0] * 10  # 圆的坐标y轴
RGBx = [0] * 10  # 颜色RGB值第一个值
RGBy = [0] * 10  # 颜色RGB值第二个值
RGBz = [0] * 10  # 颜色RGB值第三个值

while True:
    time.sleep(0.1)  # 0.1秒
    for event in pygame.event.get():  # 监听器
        if event.type == pygame.MOUSEBUTTONDOWN:  # 鼠标按下
            num = arrradiusbool.index(False)   #获取圆不存在的索引值
            arrradiusbool[num] = True          #将该索引值的圆设置为存在
            arrradiusr[num] = 0                #该圆的半径设置为0
            arrradiusx[num], arrradiusy[num] = pygame.mouse.get_pos()        #获取鼠标坐标
            RGBx[num] = random.randint(0, 255)       #获取颜色值
            RGBy[num] = random.randint(0, 255)       #获取颜色值
            RGBz[num] = random.randint(0, 255)       #获取颜色值
            pygame.draw.circle(screen, pygame.Color(RGBx[num], RGBy[num], RGBz[num]),     #画圆
                               (arrradiusx[num], arrradiusy[num]), arrradiusr[num], 1)
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    for i in range(10):
        if arrradiusbool[i] == False:     #如果圆不存在则跳过循环
            pass
        else:
            if (arrradiusr[i] < random.randint(10, 50)):       #随机圆的大小
                arraddradiusr[i] = random.randint(0, 5)        #圆的随机半径增量
                arrradiusr[i] += arraddradiusr[i]
                pygame.draw.circle(screen, pygame.Color(RGBx[i], RGBy[i], RGBz[i]),     #画圆
                                   (arrradiusx[i], arrradiusy[i]), arrradiusr[i], 1)
            else:
                arrradiusbool[i] = False    #若圆已达到最大,这将该索引值的圆设置为不存在
    pygame.display.update()

相关内容

用python复制一个文件...
在Python中,你可以使用shutil模块来复制文件,并使用ti...
2024-06-12 15:14:26
ADB Python-Da...
当使用ADB Python-Daemon库时,如果子进程无法连接,...
2024-05-24 01:17:39
ADAL python 支...
要实现ADAL Python支持Windows登录用户,可以按照以...
2024-05-24 00:23:06
ADAL for Pyth...
在ADAL for Python中,可以使用TokenCache类...
2024-05-24 00:21:15
Adafruit的TLC5...
目前,Adafruit 的TLC5947没有官方的 Micropy...
2024-05-24 00:20:23
Adafruit QT P...
如果Adafruit QT PY ESP32-S2被卡在Circu...
2024-05-24 00:20:09

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 常见... 什么是 Apache Doris Apache Doris 是一款 MPP 架构的 OLAP 列式存...
Vmware简易安装ubunt... 大晚上的折腾死我了VMware安装ubuntu,用简易安装结果设置的用户名密码死活进不去再重装一次,...
‘WebDriver‘ obj... selenium库报错"‘WebDriver’ object has no attribute ‘f...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
WiFi中继器和WiFi扩展器... WiFi中继器以无线方式连接到 WiFi 网络并重新广播信号。它就像一个中继系统,连接到我们的 Wi...