import pygame
import sys
import random
# 初始化 Pygame
pygame.init()
# 设置窗口大小
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Click the Red Dot")
# 定义颜色
black = (0, 0, 0)
red = (255, 0, 0)
# 红点类
class RedDot:
def __init__(self, x, y, amount):
self.x = x
self.y = y
self.amount = amount
self.clicked = False
# 生成随机红点
def generate_red_dot():
x = random.randint(50, width - 50)
y = random.randint(50, height - 50)
amount = random.randint(1, 100)
return RedDot(x, y, amount)
# 主循环
red_dots = []
clock = pygame.time.Clock()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.MOUSEBUTTONDOWN:
# 检查鼠标点击位置是否在红点范围内
for red_dot in red_dots:
if red_dot.x - 25 <= event.pos[0] <= red_dot.x + 25 and \
red_dot.y - 25 <= event.pos[1] <= red_dot.y + 25:
# 标记红点被点击
red_dot.clicked = True
# 生成新的红点
if random.random() < 0.01:
red_dots.append(generate_red_dot())
# 绘制红点
screen.fill(black)
for red_dot in red_dots:
if not red_dot.clicked:
pygame.draw.circle(screen, red, (red_dot.x, red_dot.y), 25)
# 移除已点击的红点
red_dots = [red_dot for red_dot in red_dots if not red_dot.clicked]
pygame.display.flip()
clock.tick(60)
对上述代码的总结和描述:
1.Pygame 初始化:
pygame.init() 初始化 Pygame 库。
2.窗口设置:
使用 pygame.display.set_mode() 创建一个窗口,大小为800x600像素。
使用 pygame.display.set_caption() 设置窗口标题为 "Click the Red Dot"。
3.颜色定义:
定义了两种颜色,black(黑色)和 red(红色)。
4.RedDot 类:
定义了一个 RedDot 类,表示屏幕上的红点。
具有属性:x 和 y 表示红点的位置,amount 表示红点的数量,clicked 表示红点是否被点击。
5.生成随机红点函数:
generate_red_dot() 函数生成一个具有随机位置和数量的 RedDot 对象。
6.主循环:
进入一个无限循环,处理事件、更新游戏状态并绘制屏幕。
7.事件处理:
处理 pygame.QUIT 事件,以便在窗口关闭时退出游戏。
处理 pygame.MOUSEBUTTONDOWN 事件,检查鼠标点击位置是否在红点范围内。
8.红点生成:
使用 random.random() 控制生成新红点的频率,当随机数小于0.01时,生成一个新的红点,并将其添加到 red_dots 列表中。
9.绘制屏幕:
使用 screen.fill(black) 填充屏幕为黑色。
遍历 red_dots 列表,绘制未被点击的红点。
10.移除已点击的红点:
通过列表推导式将已经被点击的红点从 red_dots 列表中移除。
11.刷新屏幕和控制帧率:
使用 pygame.display.flip() 更新屏幕。
使用 clock.tick(60) 控制游戏循环的帧率为60帧/秒。文章来源:https://www.toymoban.com/news/detail-805659.html
文章来源地址https://www.toymoban.com/news/detail-805659.html
到了这里,关于点击随机红点的简单游戏(pygame)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!