Python Pyglet新版本仅显示黑色
到目前为止,我一直将Pyglet与Python Pyglet新版本仅显示黑色,python,python-3.x,python-3.7,pyglet,Python,Python 3.x,Python 3.7,Pyglet,到目前为止,我一直将Pyglet与子类化窗口一起使用。实际上是这样的: import pyglet from pyglet import * from pyglet.gl import * class test(pyglet.window.Window): old_set = 1024, 576 new_set = old_set def __init__(self, *args, **kwargs): super().__init__(*args,
子类化窗口一起使用。实际上是这样的:
import pyglet
from pyglet import *
from pyglet.gl import *
class test(pyglet.window.Window):
old_set = 1024, 576
new_set = old_set
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.video_set()
self.label = pyglet.text.Label("TEST", font_name='Times New Roman', font_size=36, x=0, y=0, anchor_x='center', anchor_y='center')
def video_set(self):
self.platform = pyglet.window.get_platform()
self.default_display = self.platform.get_default_display()
self.default_screen = self.default_display.get_default_screen()
self.set_size(self.new_set[0], self.new_set[1])
self.location = self.default_screen.width // 2 - self.new_set[0] // 2, self.default_screen.height // 2 - self.new_set[1] // 2
self.set_location(self.location[0], self.location[1])
self.set_caption("Test")
self.set_fullscreen(False)
def update(self, dt):
pass
def draw(self):
self.clear()
self.label.draw()
if __name__ == "__main__":
t = test()
pyglet.clock.schedule_interval(t.update, 1 / 120)
pyglet.app.run()
几天前我更新了Pyglet,现在这个脚本不再工作了。通过搜索,我发现pyglet.window.get_platform()
已被弃用,应改用pyglet.canvas.Display()
或pyglet.canvas.get_Display()
。所以我进行了测试,正如上面所说的,也正如我在其他答案中所发现的,但在任何情况下,我得到的都是黑屏,没有显示任何内容。不管是标签、精灵还是别的什么。那么,在这个新版本中,我做错了什么?感谢您的帮助。因此,我怀疑这段代码以前是否有效,但我可以告诉您,这是一个值得怀疑的问题。
因为在这种情况下,我认为这是因为您在draw()
之前忘记了上的。尝试下面的代码,看看它是否有效,如果是这样的话,我就知道了:)
因此,我怀疑这段代码以前是否有效,但我将告诉您这一怀疑的好处。
因为在这种情况下,我认为这是因为您在draw()
之前忘记了上的。尝试下面的代码,看看它是否有效,如果是这样的话,我就知道了:)
介意告诉我你在运行哪个Pyglet版本吗?版本应该是1.4,最近发布的新版本。我的错误,版本是1.5.5。请告诉我你在运行哪个Pyglet版本?版本应该是1.4,最近发布的新版本。我的错误,版本是1.5.5。你知道,当你尝试新的东西时,你得到了一个你不理解的错误,你只专注于解决它,解决它,但你没有意识到,与此同时,你做了一些新手胡说八道,他们告诉你,你多么想被埋在十米深的地球下,远离你所感到的羞耻感?在这里,现在我感觉到了那种感觉。@BlackFenix06哈哈,我感觉到你了!我们也这样做过,很高兴我们能为您的项目节省一些时间;)Gl给你!:)你知道,当你尝试新事物时,你会犯一个你不理解的错误,你只专注于解决它,解决它,而你没有意识到在这期间你做了一些新手胡说八道,他们向你表明你多么想被掩埋在十米深的地底下,因为你感到羞耻?在这里,现在我感觉到了那种感觉。@BlackFenix06哈哈,我感觉到你了!我们也这样做过,很高兴我们能为您的项目节省一些时间;)Gl给你!:)
import pyglet
from pyglet import *
from pyglet.gl import *
class test(pyglet.window.Window):
old_set = 1024, 576
new_set = old_set
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.video_set()
self.label = pyglet.text.Label("TEST", font_name='Times New Roman', font_size=36, x=0, y=0, anchor_x='center', anchor_y='center')
def video_set(self):
self.default_display = pyglet.canvas.Display()
self.default_screen = self.default_display.get_default_screen()
self.set_size(self.new_set[0], self.new_set[1])
self.location = self.default_screen.width // 2 - self.new_set[0] // 2, self.default_screen.height // 2 - self.new_set[1] // 2
self.set_location(self.location[0], self.location[1])
self.set_caption("Test")
self.set_fullscreen(False)
def update(self, dt):
pass
def on_draw(self):
self.clear()
self.label.draw()
if __name__ == "__main__":
t = test()
pyglet.clock.schedule_interval(t.update, 1 / 120)
pyglet.app.run()