Python Pygame-如何从底部到顶部逐渐填充对象?

Python Pygame-如何从底部到顶部逐渐填充对象?,python,events,pygame,Python,Events,Pygame,我目前正在做一个基于餐馆工作的游戏,我正在做的一个方面是往杯子里注满水,我选择不做水模拟,因为我不是专家啊哈,但我的想法是,当按住鼠标按钮时,用矩形一个接一个地往杯子里注满水是行不通的。以下是我试图修复的代码部分,欢迎您提供任何反馈:) pygame.event.wait()等待队列中的单个事件并停止应用程序循环。实现一个事件循环并使用: 用于控制每秒帧数,从而控制游戏速度 对象的方法以这种方式延迟游戏,循环的每次迭代都消耗相同的时间段。看 此方法应每帧调用一次 这意味着循环: clock=py

我目前正在做一个基于餐馆工作的游戏,我正在做的一个方面是往杯子里注满水,我选择不做水模拟,因为我不是专家啊哈,但我的想法是,当按住鼠标按钮时,用矩形一个接一个地往杯子里注满水是行不通的。以下是我试图修复的代码部分,欢迎您提供任何反馈:)

pygame.event.wait()
等待队列中的单个事件并停止应用程序循环。实现一个事件循环并使用:

用于控制每秒帧数,从而控制游戏速度

对象的方法以这种方式延迟游戏,循环的每次迭代都消耗相同的时间段。看

此方法应每帧调用一次

这意味着循环:

clock=pygame.time.clock()
运行=真
运行时:
时钟滴答(60)
每秒运行60次

clock=pygame.time.clock()
运行=真
运行时:
时钟滴答(60)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.MOUSEBUTTONDOWN:
水位=真
如果event.type==pygame.MOUSEBUTTONUP:
打印(“Lol”)
水线=假
如有积水:
pygame.draw.rect(屏幕[0,0255],[300,水线,400,1])
吃水线-=1
pygame.display.flip()

或者,您可以使用:

导入pygame
pygame.init()
screen=pygame.display.set_模式((300400))
水线=300
clock=pygame.time.clock()
运行=真
运行时:
时钟滴答(60)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果有(pygame.mouse.get_pressed()):
pygame.draw.rect(屏幕[0,0255],[100,水线,100,1])
吃水线-=1
pygame.display.flip()

单击鼠标按钮时,
MOUSEBUTTONDOWN
事件发生一次,松开鼠标按钮时,
MOUSEBUTTONUP
事件发生一次。

返回布尔值的列表​​表示所有鼠标按钮的状态(
True
False
)。只要按下按钮,按钮的状态就是
True

你的救命恩人哈哈,我只是刚开始,一直忘了时钟,现在一切都好了!干杯:)
while True:
   e = pygame.event.wait()
   if e.type == pygame.MOUSEBUTTONDOWN:
       DrawWater = True       
   if e.type == pygame.MOUSEBUTTONUP:
           print("Lol")
           WaterLine = False
   
   if DrawWater:
       pygame.draw.rect(screen, [0, 0, 255], [300, WaterLine, 400, 1])
       WaterLine -= 1
   pygame.display.flip()