Python 画线,但我不画';我在屏幕上看不到他们

Python 画线,但我不画';我在屏幕上看不到他们,python,pygame,Python,Pygame,当我运行此代码时,尝试为蛇游戏绘制网格: 它没有任何界限。我是pygame新手,不知道如何解决这样的问题,因为它只会打开一个没有任何错误的黑盒。网格只在第一帧中绘制了一小会儿,因为属性x和y不断递增,但从不重置 def绘图(自身、表面): 对于范围内的l(self.rows): self.x+=self.sizeBetween self.y+=self.sizeBetween 在第二帧中,显示被清除,但属性x和y的当前值为self.rows*self.sizebeween。因此,所有的线条都是

当我运行此代码时,尝试为蛇游戏绘制网格:


它没有任何界限。我是pygame新手,不知道如何解决这样的问题,因为它只会打开一个没有任何错误的黑盒。

网格只在第一帧中绘制了一小会儿,因为属性
x
y
不断递增,但从不重置

def绘图(自身、表面):
对于范围内的l(self.rows):
self.x+=self.sizeBetween
self.y+=self.sizeBetween
在第二帧中,显示被清除,但属性
x
y
的当前值为
self.rows*self.sizebeween
。因此,所有的线条都是从窗口画出来的

更改轴网的图形:

类网格(对象):
# [...]
def绘图(自、表面):
x、 y=self.x,self.y
对于范围内的l(自行-1):
x+=自身尺寸二者之间
y+=自身尺寸之间
pygame.draw.line(曲面,(255,255,255),(x,0),(x,self.width))
pygame.draw.line(曲面,(255,255,255),(0,y),(自宽,y))

请注意,类
grid
和实例
grid
的名称是相同的。这会导致实例覆盖该类。Python区分大小写,类名通常应使用大写字母约定。看

我建议更改类的名称:

类网格(对象):
# [...]
# [...]
网格=网格(20500,0,0)
import pygame

pygame.init()

pygame.display.set_caption('Snake')


class grid(object):
    def __init__(self, rows, width, x, y):
        self.rows = rows
        self.width = width
        self.x = x
        self.y = y
        self.sizeBetween = width // rows

    def draw(self, surface):
        for l in range(self.rows):
            self.x += self.sizeBetween
            self.y += self.sizeBetween

            pygame.draw.line(win, (255, 255, 255), (self.x, 0), (self.x, self.width))
            pygame.draw.line(win, (255, 255, 255), (0, self.y), (self.width, self.y))


def window(surface):
    grid.draw(surface)

    pygame.display.update()


grid = grid(20, 500, 0, 0)
win = pygame.display.set_mode((grid.width, grid.width))
run = True
while run:
    win.fill((0, 0, 0))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    window(win)