如何用类在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
相关产品推荐
相关产品推荐

