我正在尝试render!
在屏幕上添加一个简单的标签on-render
功能,但它不起作用。我得到的只是一个空白屏幕。
我花了一些时间,但我终于发现当我退回标签以外的其他东西时会发生这种情况。例如,这有效:
(defscreen main-screen
:on-show
(fn [screen entities]
(update! screen :renderer (stage))
[])
:on-render
(fn [screen _]
(clear!)
(render! screen [(label "Hello, world!" (color :white))])))
这没有(所有改变的是最后一行on-render
):
(defscreen main-screen
:on-show
(fn [screen entities]
(update! screen :renderer (stage))
[])
:on-render
(fn [screen _]
(clear!)
(render! screen [(label "Hello, world!" (color :white))])
["I just wanna pass my own data here, ugh.."]))
为了进行测试,我将其替换为label
,texture
它确实有效。
这是什么原因造成的?看起来很随意(我在第一个示例中评估的标签无论如何都会被完全忽略!那么为什么我必须通过它?我不明白发生了什么)。
PS 在这种情况下,在每一帧上创建标签是有意的,我知道我可以从我制作的标签中设置它on-show
,但我试图变得更有活力。我还尝试添加一个Thread/sleep
afterrender!
以确保在渲染和清除之间有一个可见的时间窗口。
我是一个完整的初学者我想知道为什么上述方法不起作用除了我该如何解决它?