Создание игры Snake (после учебника): я получаю сообщение об ошибке, объект не является подписным - PullRequest
1 голос
/ 10 марта 2019

Таким образом, следующий код предназначен для создания настоящей змеи с кубиками (этот фрагмент кода также является единственной частью с термином 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

Я был бы очень признателен за помощь, так как я очень новичок в этом деле.Спасибо.

...