在pygame中在屏幕上渲染numpy数组

时间:2017-06-10 18:22:34

标签: python python-3.x numpy pygame pygame-surface

我正在尝试渲染一个numpy数组,也就是说,它的内容是pygame中的一个屏幕。 但是,pygame文本渲染器仅支持Unicode。

我试图将我的数组转换为chararray,但它不是一个解决方案。

numpy中是否有任何函数将数组转换为字符串,同时保持形状。 另一种方法是将numpy数组解析为字符串;尽管它奏效了,阵列也失去了它的形状。

这是我的代码。

    import pygame
    import numpy as np

    pygame.init()
    pygame.font.init()

    screen = pygame.display.set_mode((400, 400))
    b = np.array([[1, 2, 3, 4],
                 [3, 5, 6, 5]])

    print(b)
    running = True
    font = pygame.font.SysFont("Arial", 20)

    while running:

        for event in pygame.event.get():

            if event.type == pygame.QUIT:
                running = False

        text = font.render(b, False, (255, 255, 255))

        screen.blit(text, (30, 30))

        pygame.display.flip()

    pygame.quit()
    quit()

1 个答案:

答案 0 :(得分:1)

我相信np.array_str(b)会做你想要的。查看np.array_str上的文档。

它确实返回the string representation of the data in the array。引用的文档也符合您的要求。