我正在尝试为python创建一个基本的蛇游戏,我对pygame不是很熟悉。我创建了一个窗口,并尝试根据窗口大小和设置的方块大小将该窗口拆分为网格。
def get_initial_snake( snake_length, width, height, block_size ):
window = pygame.display.set_mode((width,height))
background_colour = (0,0,0)
window.fill(background_colour)
return snake_list
我将在window.fill之后添加什么来创建基于width,height和block_size的网格?任何信息都会有所帮助
答案 0 :(得分:4)
使用for循环作为答案的参考:https://stackoverflow.com/a/33963521/9715289
这就是我尝试制作蛇游戏时所做的。
BLACK = (0, 0, 0)
WHITE = (200, 200, 200)
WINDOW_HEIGHT = 400
WINDOW_WIDTH = 400
def main():
global SCREEN, CLOCK
pygame.init()
SCREEN = pygame.display.set_mode((WINDOW_HEIGHT, WINDOW_WIDTH))
CLOCK = pygame.time.Clock()
SCREEN.fill(BLACK)
while True:
drawGrid()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
pygame.display.update()
def drawGrid():
blockSize = 20 #Set the size of the grid block
for x in range(WINDOW_WIDTH):
for y in range(WINDOW_HEIGHT):
rect = pygame.Rect(x*blockSize, y*blockSize,
blockSize, blockSize)
pygame.draw.rect(SCREEN, WHITE, rect, 1)
结果如何:
答案 1 :(得分:0)
您可以绘制矩形
for y in range(height):
for x in range(width):
rect = pygame.Rect(x*block_size, y*block_size, block_size, block_size)
pygame.draw.rect(window, color, rect)
我认为height
和width
是块数。
-
如果矩形之间需要一个像素间隙,请使用
rect = pygame.Rect(x*(block_size+1), y*(block_size+1), block_size, block_size)
-
要绘制蛇,您可以使用list和head_color,tail_color
snake = [(0,0), (0,1), (1,1), (1,2), (1,3)]
# head
x, y = snake[0]
rect = pygame.Rect(x*block_size, y*block_size, block_size, block_size)
pygame.draw.rect(window, head_color, rect)
# tail
for x, y in snake[1:]:
rect = pygame.Rect(x*block_size, y*block_size, block_size, block_size)
pygame.draw.rect(window, tail_color, rect)