gpt4 book ai didi

python - 点击图片无效

转载 作者:行者123 更新时间:2023-11-28 18:09:10 24 4
gpt4 key购买 nike

我正在使用 pygame 在 python 中创建一个完全可定制的谜题机。我决定尽早实现的一件事是帮助功能。当我对此进行测试时,控制台上不会显示任何内容。这是点击图片的代码(不是全部代码)

while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
pygame.display.quit()
if event.type == pygame.MOUSEBUTTONDOWN:
x, y = event.pos
if img.get_rect().collidepoint(x, y):
print('test')

我如何使它起作用?所有帮助都会有用。

最佳答案

当您调用 img.get_rect() 时,您会创建一个 pygame.Rect,它具有图像/表面的大小和默认的 topleft坐标 (0, 0),即您的矩形位于屏幕的左上角。我建议在程序开头为 img 创建一个 rect 实例,并将其用作 blit 位置和碰撞检测。您可以通过 topleft , center, x, y 等坐标直接作为 get_rect 的参数: rect = img.get_rect(topleft=(200, 300))

import pygame as pg


pg.init()
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
BG_COLOR = pg.Color('gray12')

img = pg.Surface((100, 50))
img.fill((0, 100, 200))
# Create a pygame.Rect with the size of the surface and
# the `topleft` coordinates (200, 300).
rect = img.get_rect(topleft=(200, 300))
# You could also set the coords afterwards.
# rect.topleft = (200, 300)
# rect.center = (250, 325)

done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.MOUSEBUTTONDOWN:
if rect.collidepoint(event.pos):
print('test')

screen.fill(BG_COLOR)
# Blit the image/surface at the rect.topleft coords.
screen.blit(img, rect)
pg.display.flip()
clock.tick(60)

pg.quit()

关于python - 点击图片无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51804863/

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