制作一个蛇游戏(遵循教程):我得到一个错误,对象不是subscriptab

2024-04-19 22:57:09 发布

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

因此,下面的代码是用立方体来制作实际的snake(这段代码也是唯一一个明显带有self.pos的部分):

class cube (object):
rows = 20
w = 500

def __init__(self, start, dirnx=1, dirny=0, colour=(255, 0, 0)):
    self.pos = start
    self.dirnx = 1
    self.dirny = 0
    self.colour = colour

def move(self, dirnx, dirny):
    self.dirnx = dirnx
    self.dirny = dirny
    self.pos = (self.pos[0] + self.dirnx, self.pos[1] + self.dirny)

def draw(self, surface, eyes=False):
    dis = self.w // self.rows
    i = self.pos[0]
    j = self.pos[1]

    pygame.draw.rect(surface, self.colour, (i * dis + 1, j * dis + 1, dis - 2, dis - 2))

    if eyes:
        centre = dis//2
        radius = 3
        circleMiddle = (i * dis + centre - radius, j * dis + 8)
        circleMiddle2 = (i * dis + dis - radius * 2, j * dis + 8)
        pygame.draw.circle(surface, (0, 0, 0), circleMiddle, radius)
        pygame.draw.circle(surface, (0, 0, 0,), circleMiddle2, radius)

当我运行整个程序(其中包含更多的代码)时,会出现以下错误:

File "/Users/shreevathsagorur/PycharmProjects/FirstStepGameDevelopment/Snake.py", line 30, in draw
i = self.pos[0]
TypeError: 'NoneType' object is not subscriptable

我真的很感激你的帮助,因为我对这个东西很陌生。 非常感谢。你知道吗


Tags: 代码posselfobjectdefsurfacepygamestart