关于python:在pygame中在屏幕上渲染numpy数组

Render numpy array on screen in pygame

我正在尝试呈现一个麻木的数组,也就是说,它的内容在PyGame的屏幕上。但是,Pygame文本呈现器只支持Unicode。

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

numpy中是否有函数在保持形状的同时将数组转换为字符串?另一种方法是将numpy数组解析为字符串;尽管它起作用,但数组却失去了它的形状。

这是我的密码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    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()


我相信np.array_str(b)能做你想做的。查看EDOCX1[1]上的文档。

它实际上返回了the string representation of the data in the array。从与您的请求匹配的文档中引用。