【问题标题】:Is there a way to move a rectangle to a certain coordinate in pygame?有没有办法将矩形移动到pygame中的某个坐标?
【发布时间】:2020-03-28 21:22:01
【问题描述】:

我正在尝试在 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 属性错误。或者也许我完全不在了。

【问题讨论】:

    标签: python pygame rectangles


    【解决方案1】:

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

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

    new_segement = pygame.draw.rect(wn, green, [300, 300, 20, 20]) 的另一个问题。这条线已经导致矩形在设置的 '300, 300' 坐标处绘制。您应该先计算矩形的 x & y 坐标,然后运行类似:pygame.draw.rect(wn, green, [x, y, 20, 20])

    【讨论】:

      猜你喜欢
      • 2016-06-19
      • 1970-01-01
      • 2014-12-02
      • 2016-11-11
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      相关资源
      最近更新 更多