如何在Pygame中创建多个矩形实例?

0 投票
2 回答
2123 浏览
提问于 2025-04-30 22:32

我正在尝试使用PyGame通过一个循环来创建多个矩形,但我不太清楚该怎么做。我的第一种方法是把所有的矩形实例存储在一个数组里,但接着我遇到了另一个问题,就是怎么给它们分配一个.get_rect()。于是我这样做了:

def MultiRect(amount):
    objects = []
    objectsRect = []

    for i in range(0, amount):
        objects.append(pygame.Surface([200,100]).convert())
        objects[i].fill((130,130,130))
        objectsRect.append(objects[i].get_rect())

我尝试做了两个数组,一个用来存储实例,另一个用来存储instance.get_rect(),但我知道这样做是不对的,而且我还遇到了多个out of range的错误。有没有其他的方法可以解决这个问题呢?

暂无标签

2 个回答

0

那么你代码中到底哪里不对呢?我看不出有什么问题。不过,有一点奇怪,就是你为什么要把表面大小放在方括号里。不过这可能不会导致错误,所以也算可以接受。你什么时候遇到超出范围的错误呢?

0

你可以直接创建一堆矩形,比如这样:

for i in range(0,amount):
    objectsRect.append(pygame.Rect(left,top,width,height))

或者我是不是理解错了你的问题?

撰写回答