ярлык pyglet не отображается на экране при рисовании () при визуализации в тренажерном зале OpenAI - PullRequest
0 голосов
/ 25 июня 2019

Я использую обертку в тренажерном зале OpenAI для создания графического представления проблемы.Для этого я рисую круг с помощью данной оболочки, а затем пытаюсь добавить текст.

Моя проблема в том, что отображается только круг, но текстовая метка не появляется.Буду очень признателен за любые предложения о том, как сделать текст видимым.Ниже приведен минимальный пример, показывающий проблему:

import pyglet
from gym.envs.classic_control import rendering

screen_width = 600
screen_height = 400
table_radius = 200

viewer = rendering.Viewer(screen_width, screen_height + 20)
table = rendering.make_circle(radius=table_radius, filled=False)
table_trans = rendering.Transform()
table.add_attr(table_trans)
table_trans.set_translation(screen_width / 2, screen_height / 2)

viewer.add_geom(table)

text = 'This is a test but it is not visible'
label = pyglet.text.Label(text, font_size=36,
                          x=10, y=10, anchor_x='left', anchor_y='bottom',
                          color=(255, 123, 255, 255))
label.draw()

viewer.render(return_rgb_array=False)
input()

1 Ответ

0 голосов
/ 24 июля 2019

пожалуйста, попробуйте этот код:

import pyglet
from gym.envs.classic_control import rendering

class DrawText:
    def __init__(self, label:pyglet.text.Label):
        self.label=label
    def render(self):
        self.label.draw()

screen_width = 600
screen_height = 400
table_radius = 200

viewer = rendering.Viewer(screen_width, screen_height + 20)
table = rendering.make_circle(radius=table_radius, filled=False)
table_trans = rendering.Transform()
table.add_attr(table_trans)
table_trans.set_translation(screen_width / 2, screen_height / 2)

viewer.add_geom(table)

text = 'This is a test but it is not visible'
label = pyglet.text.Label(text, font_size=36,
                          x=10, y=10, anchor_x='left', anchor_y='bottom',
                          color=(255, 123, 255, 255))
label.draw()
viewer.add_geom(DrawText(label))
viewer.render(return_rgb_array=False)
input()
...