You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pygame图片点击检测问题:奶奶按钮点击无响应求助

你的代码存在两处核心问题,导致点击奶奶图片无法触发预期效果:

1. 绘制函数参数未正确使用

grandshop函数定义时接收x,y参数,但内部绘制却硬编码使用全局变量xx,yy,虽然当前调用时传入的是正确值,但这种写法冗余且容易出错,修正为:

def grandshop(x,y):
    gameDisplay.blit(grandma, (x,y))

2. 碰撞检测未匹配实际绘制位置

grandma.get_rect()默认生成的矩形左上角坐标是(0,0),但你实际把奶奶图片绘制在(450,20)位置,所以必须给矩形设置正确的位置后再做碰撞检测。同理,饼干的碰撞检测只是碰巧生效(因为绘制在(0,0)),也应该统一修正写法。

修改后的鼠标点击检测代码:

if event.type == pygame.MOUSEBUTTONDOWN:
    mouse_pos = pygame.mouse.get_pos()
    # 绑定饼干到实际绘制位置
    cookie_rect = cookie.get_rect(topleft=(x, y))
    if cookie_rect.collidepoint(mouse_pos) and event.button == 1:
        cookies += 1
        pygame.display.set_caption(f'Cookies: {cookies}')
    # 绑定奶奶到实际绘制位置
    grandma_rect = grandma.get_rect(topleft=(xx, yy))
    if grandma_rect.collidepoint(mouse_pos):
        print("It actually worked! :)")

同时移除原代码中不必要的else: break语句,避免右键点击直接终止循环。

完成上述修改后,点击奶奶图片就能正常打印预期内容了。

内容的提问来源于stack exchange,提问作者omboybread

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:15:37