我正在使用Python 3而我正在尝试重写我刚才写的图形库。现在,我有一个名为Scene
的类,除了构造函数之外还有三个方法:logic(self)
,update(self)
和render(self)
。
logic(self)
处理每个Scene
的逻辑。它处理所有鼠标和键盘输入,并确定是否单击了按钮等等。
update(self)
可以被认为是一种抽象方法。它的内容只是raise NotImplementedError
。 update(self)
每秒调用一定次数,并更新程序中正在发生的任何内容,但不会在屏幕上绘制任何内容。这是与帧率无关的更新。如果Pong是用这个图书馆制作的,球的位置会用这种方法更新。
render(self)
实际更新了屏幕。这样,程序的速度不是由帧速率决定的。
我喜欢我Scene
的当前实现。它现在非常干净,看起来非常直观。但是,我无法克服如何扩展Scene
。假设我想为主菜单制作基本GUI的Scene
。我希望只有一个主菜单Scene
,因为我不认为每次重新创建另一个Scene
是个好主意主菜单将被查看和使用。
我最初是通过使用静态类扩展Scene
,但很快意识到它并不是真的可以做到这一点。 目前的范例只是用普通类扩展 Scene
,然后每次必须使用子类时重新创建并销毁它吗?例如,我应该只是在分别查看和离开时重新创建并销毁一个假设的MainMenu(Scene)
对象?