|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import pygame
pygame.init()
WIN_WIDTH = 1200
WIN_HEIGHT = 724
window = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))
pygame.display.set_caption("游戏")
window.fill((255, 255, 255))
image1 = pygame.image.load('背景图片1.png')
window.blit(image1, (0, 0))
pygame.display.flip()
y = 100
pygame.draw.circle((255, 0, 0), (100, y), 50)
pygame.display.update()
num = 1
while True:
num += 1
if num % 10 == 0:
pygame.draw.circle((255, 255, 255), (100, y), 50)
pygame.draw.circle((255, 0, 0), (100, y), 50)
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
哪里错了?
代码错误分析和修改建议:
1. 在 pygame.draw.circle函数中,颜色参数需要使用元组表示,但当前代码中直接传入了RGB值 (255, 0, 0),导致报错。应该将颜色参数改为 (255, 0, 0)的元组形式。
2. 在while循环中,对于每一帧的绘制操作后,应该调用 pygame.display.update()来更新显示,否则绘制的图形可能无法在窗口中显示出来。
下面是修改后的代码: import pygamepygame.init()WIN_WIDTH = 1200WIN_HEIGHT = 724window = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))pygame.display.set_caption("游戏")window.fill((255, 255, 255))image1 = pygame.image.load('背景图片1.png')window.blit(image1, (0, 0))pygame.display.flip()y = 100pygame.draw.circle(window, (255, 0, 0), (100, y), 50)pygame.display.update()num = 1while True: num += 1 if num % 10 == 0: pygame.draw.circle(window, (255, 255, 255), (100, y), 50) pygame.draw.circle(window, (255, 0, 0), (100, y), 50) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: exit()
修改后的代码中,我将绘图操作的目标 Surface 改为 window,以保证图形能够在窗口中正确绘制。另外,在每次更新绘图后,加入了 pygame.display.update() 来更新窗口显示。
如果回答对你有帮助,请给我一个最佳答案!
|
|