gpt4 book ai didi

python - Pygame - 如何从下到上逐渐填充对象?

转载 作者:行者123 更新时间:2023-12-04 08:03:57 25 4
gpt4 key购买 nike

我目前正在开发一款基于在餐厅工作的游戏,我正在研究的一个方面是给杯子装满水,我选择不进行水模拟,因为我不是专家 ahah 但我的想法是按住鼠标按钮时,使用矩形一个接一个地填充杯子不起作用。这是我试图修复的代码部分,感谢任何和所有反馈:)。

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()

最佳答案

pygame.event.wait()等待队列中的单个事件并停止应用程序循环。实现事件循环并使用 pygame.event.get :
使用 pygame.time.Clock 控制每秒帧数,从而控制游戏速度。
方法 tick() pygame.time.Clock 对象,以这种方式延迟游戏,循环的每次迭代都消耗相同的时间段。见 pygame.time.Clock.tick() .

This method should be called once per frame.


这意味着循环:
clock = pygame.time.Clock()
run = True
while run:
clock.tick(60)

每秒运行 60 次。
clock = pygame.time.Clock()
run = True
while run:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == pygame.MOUSEBUTTONDOWN:
DrawWater = True
if event.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()

或者,您可以使用 pygame.mouse.get_pressed() :

import pygame

pygame.init()
screen = pygame.display.set_mode((300, 400))

WaterLine = 300

clock = pygame.time.Clock()
run = True
while run:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False

if any(pygame.mouse.get_pressed()):
pygame.draw.rect(screen, [0, 0, 255], [100, WaterLine, 100, 1])
WaterLine -= 1
pygame.display.flip()
MOUSEBUTTONDOWN当您单击鼠标按钮和 MOUSEBUTTONUP 时,事件发生一次。释放鼠标按钮时发生一次事件。
pygame.mouse.get_pressed() 返回代表所有鼠标按钮状态( TrueFalse )的 bool 值列表。按钮的状态是 True只要按住一个按钮。

关于python - Pygame - 如何从下到上逐渐填充对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66315311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com