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

如何用类在Pygame中绘制圆形?代码运行无圆形显示求解

问题解决:Pygame圆形无法显示

你的代码里,pygame.draw.circle的最后一个参数(半径)被设为0,这会导致绘制的“圆”只是一个不可见的点,所以窗口只显示黑色背景。

修正后的代码

import pygame
import sys

pygame.init()

canvas = pygame.display.set_mode((600,600))

class Invader:
    def __init__(self,xp,yp):
        self.xp = int(xp)
        self.yp = int(yp)
    def draw(self):
        # 将半径从0改为10(可根据需求调整大小)
        pygame.draw.circle(canvas,(0,255,0),(self.xp,self.yp),10)
        

invader = Invader(300,300)
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    # 每次绘制前清屏,避免后续添加移动逻辑时留下轨迹
    canvas.fill((0,0,0))
    invader.draw()
    pygame.display.update()

关键修改点

  • 将pygame.draw.circle的半径参数从0改为大于0的数值(比如10),这样才能显示出可见的圆形。
  • 把方法名从Movement改为更贴切的draw,因为当前方法仅负责绘制,无移动逻辑(若需实现移动,可在类中添加对应代码)。
  • 添加循环内的清屏操作canvas.fill((0,0,0)),为后续可能的移动逻辑提前处理轨迹问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 09:52:03