You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制Pygame游戏中生成的圆形数量且不拖慢游戏运行速度

问题根源

你当前代码的逻辑是每运行一次游戏主循环(每秒会跑144次)就生成1个新圆形,且没有存储已生成的圆形坐标,也没有做生成间隔、总数量限制。用time.sleep()会阻塞整个主线程,所以才会拖慢游戏运行,完全不需要用这个方法,用帧计数或者pygame内置的时间机制就能实现需求。

具体解决思路

  • 新增一个列表存储所有已生成的圆形坐标,后续做碰撞收集判定也需要用到这个列表
  • 新增变量控制生成间隔,每经过指定帧数/毫秒才生成1个新圆形
  • 新增变量限制最大生成数量,列表长度达到阈值后不再生成新圆形
  • 每次渲染时遍历列表绘制所有存在的圆形

修改后的可运行代码

import pygame
import random

pygame.init()
y = 0
x = 0
point = 0
is_blue = True
WHITE = (255, 255, 255)
clock = pygame.time.Clock()
screen = pygame.display.set_mode([500, 500])

# 新增配置
MAX_FOOD = 10  # 屏幕上最多同时存在10个圆形
SPAWN_INTERVAL = 60  # 每60帧生成1个新圆形,144帧的话大概0.4秒生成一个
food_list = []  # 存储所有圆形的坐标
frame_count = 0  # 帧计数器

done = False
while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True
        if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
            is_blue = not is_blue

    pygame.display.set_caption("Collect the balls to win!")

    pressed = pygame.key.get_pressed()
    if pressed[pygame.K_UP]:
        y -= 3
    if pressed[pygame.K_DOWN]:
        y += 3
    if pressed[pygame.K_LEFT]:
        x -= 3
    if pressed[pygame.K_RIGHT]:
        x += 3

    if x <= -1:
        x = 0
    if x >= 441:
        x = 440
    if y <= -1:
        y = 0
    if y >= 441:
        y = 440

    # 生成圆形逻辑
    frame_count += 1
    if frame_count >= SPAWN_INTERVAL and len(food_list) < MAX_FOOD:
        # 满足间隔要求且没到最大数量才生成新圆形
        new_food_pos = (random.randint(1, 400), random.randint(1, 400))
        food_list.append(new_food_pos)
        frame_count = 0  # 重置计数器

    screen.fill((0, 0, 0))
    if is_blue:
        color = (0, 128, 255)
    else:
        color = (255, 100, 0)

    pygame.draw.rect(screen, color, pygame.Rect(x, y, 30, 30))
    # 遍历绘制所有圆形
    for pos in food_list:
        pygame.draw.circle(screen, WHITE, pos, 5)
    pygame.display.flip()
    clock.tick(144)

如果需要实现“圆形被收集后补充新的”逻辑,只需要在碰撞检测后把对应坐标从food_list里移除即可,生成逻辑会自动补充新的圆形。

内容的提问来源于stack exchange,提问作者bruh3436

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:06:03