在pygame中是否可以将矩形移动到某个坐标?

问题描述 投票:1回答:1

我正在尝试在pygame中构建蛇游戏。蛇的头是我绘制的矩形:

def head(head_x, head_y):
    pygame.draw.rect(wn, green, [head_x, head_y, 20, 20])

这对我来说很好,直到我尝试向蛇添加更多的片段。我试图创建一个段列表,然后将每个段移到最后一个段。但是,这些片段只是停留在中心位置,而不是转到先前片段的旧位置。我的代码是:

segments = []
new_segement = pygame.draw.rect(wn, green, [300, 300, 20, 20])
segments.append(new_segement)for index in range(len(segments) -1, 0, -1):
    segment_x = segments[index - 1].x
    segment_y = segments[index - 1].y
    segments[index].centerx = segment_x
    segments[index].centery = segment_y

if len(segments) > 0:
    segments[0].centerx = head_x
    segments[0].centery = head_y

我认为我使用rect.centerx和rect.centery属性错误。也许我已经完全离开了。

我正在尝试在pygame中构建蛇游戏。蛇的头是我绘制的矩形:def head(head_x,head_y):pygame.draw.rect(wn,green,[head_x,head_y,20,20])效果很好...

python pygame rectangles
1个回答
0
投票

从您的代码开始,在运行for循环之前,列表段中只有一个元素。因此,range(len(segments) -1, 0, -1)的范围为空,并且不会执行for循环。

即使您显示的代码处于循环中,列表段也始终会在第一行用segments = []重置自身。

© www.soinside.com 2019 - 2024. All rights reserved.