微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 RGB 值设置 numpy zeros 元素

如何解决使用 RGB 值设置 numpy zeros 元素

我目前正在尝试使用 pygame 编写俄罗斯方块。

我有一个 numpy zeros 数组,它充当俄罗斯方块窗口及其内容。由于它从零开始,因此窗口上没有任何内容。当一个块被放置在底部时,矩阵会用 RGB 值代替那些零进行更新。然后我将遍历这个矩阵以将每个方块的颜色绘制到游戏窗口上。

我已经编写了代码,但是在我的 matrixUpdate 方法中出现此错误

ValueError: setting an array element with a sequence.

这是我与问题有关的代码

class Tetrimino(pygame.sprite.Sprite):
    def __init__(self,mino,color):
        pygame.sprite.Sprite.__init__(self)
        self.setMino(mino)
        self.color = color
        self.x = 160
        self.y = 160
        self.r = 0
        self.changey = 0
        self.changex = 0

    # Update the matrix of RGB values's
    def matrixUpdate(self,matrix):
        for part in self.getMino():
            matrix[((part[1] + self.y) // 40),((part[0] + self.x) // 40)] = [self.color]

        return matrix

matrix = np.zeros((24,10))

解决方法

看起来 Numpy 不喜欢将不同的类型放在一个数组中,除非你像这样创建它:

matrix = np.zeros((24,10),dtype=object)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。