“int”对象没有属性“collidepoint”

2024-09-30 22:25:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用pygame做一个简单的井字游戏。我做了一个函数,当用户鼠标点击一个框时,它会检测并返回点击的框,我尝试使用collidepoint它有'int'对象没有属性'collidepoint'错误

以下是我创建网格的方式:

def define_boundary(surface, gridData):
    gridBox = grid
    for (x, y) in gridBox:
        currentGrid = pygame.Rect(x * 100, y * 100, 100, 100)
        gridBox[(x, y)] = currentGrid
   print("the boxes are " + str(gridBox))
   return (gridBox)

所以gridBox是Rect对象的字典 然后我写了一个检测碰撞的函数,如果鼠标点击就会调用:

def check_collide(gridBox):
    point = pygame.mouse.get_pos()
    for (x, y) in gridBox:
        collide = gridBox[(x, y)].collidepoint(point)
        if collide:
            print(x, y)
            return (x, y)

然后发生错误。我试图将gridBox[(x,y)].collidepoint(点)更改为gridBox[(x,y)].rect.collidepoint(点),但仍然不起作用


Tags: 对象函数inrectforreturndef错误