|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import pygame
pygame.init()
WIN_WIDTH = 400
WIN_HEIGHT = 600
window = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))
pygame.display.set_caption("动画")
window.fill((255, 255, 255))
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()
为什么没有动画效果
本帖最后由 Mike_python小 于 2023-8-4 14:17 编辑
根据您提供的代码,没有动画效果的原因是在主循环中没有添加延迟或时钟控制。这导致整个循环迅速执行完毕,从而无法观察到动画效果。
要解决这个问题,您可以使用 `pygame.time.Clock()` 和 `clock.tick(FPS)` 函数来控制帧率。具体操作如下:
1. 在 `pygame.init()` 之后添加以下代码来创建一个时钟对象:
clock = pygame.time.Clock()
2. 定义一个变量 `FPS`,表示您希望的帧率。例如,可以将其设置为 60:
3. 在主循环的最开始调用 `clock.tick(FPS)` 来限制帧率:
while True:
clock.tick(FPS)
# 其他代码...
4.这是完整代码 import pygame
pygame.init()
WIN_WIDTH = 400
WIN_HEIGHT = 600
window = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))
pygame.display.set_caption("动画")
window.fill((255, 255, 255))
pygame.display.flip()
y = 100
pygame.draw.circle(window, (255, 0, 0), (100, y), 50)
pygame.display.update()
num = 1
running = True # 添加一个标志位,用于控制循环是否继续进行
while running:
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:
running = False # 用户点击关闭按钮时,停止循环
pygame.quit()
通过添加这些代码,您可以控制游戏循环的速度,从而实现动画效果。
请尝试修改您的代码并添加上述的时钟控制部分,然后再次运行程序,看看是否能够获得所需的动画效果。如有任何疑问,请随时提问。
|
|