|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 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(window, (255, 0, 0), (100, y), 50)
- pygame.display.update()
- num = 1
- while 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() 来更新窗口显示。
如果回答对你有帮助,请给我一个最佳答案! 
|
|