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)