Python 我应该把我的游戏放在班级游戏中吗?

Python 我应该把我的游戏放在班级游戏中吗?,python,class,pygame,game-development,Python,Class,Pygame,Game Development,我刚开始学习pygame,我也不是Python专家。但是当我做游戏的时候,我应该像Tkinter那样在类中进行游戏吗?我看的教程都没有,但我有点喜欢使用类变量,而不必担心全局变量或返回值。有明显的优势还是劣势?谢谢。不-你不应该把你的整个游戏都放在一门课上,除非它有意义。 我认为编写这些2D游戏是学习面向对象编程的最佳形式之一,意味着当你在游戏设计中感到舒适时,你将使用类和继承——不仅仅是为了它。 Pygame是一个不需要(有时不允许)您通过类继承来生成工作的模块。例如,如果您尝试从Pygame

我刚开始学习pygame,我也不是Python专家。但是当我做游戏的时候,我应该像Tkinter那样在类中进行游戏吗?我看的教程都没有,但我有点喜欢使用类变量,而不必担心全局变量或返回值。有明显的优势还是劣势?谢谢。

不-你不应该把你的整个游戏都放在一门课上,除非它有意义。 我认为编写这些2D游戏是学习面向对象编程的最佳形式之一,意味着当你在游戏设计中感到舒适时,你将使用类和继承——不仅仅是为了它。 Pygame是一个不需要(有时不允许)您通过类继承来生成工作的模块。例如,如果您尝试从Pygame的
Surface
类继承,您将发现您的自定义类无法作为需要曲面的函数的参数传递

但是,Pygame设计用于继承一个类:
Pygame.sprite.sprite
。只要您在代码中为对象容器(而不是列表、集合或字典)使用
pygame.sprite.Group
s及其派生工具,sprite就可以很好地工作。如果您有一个类层次结构,您还可以自己发现OO编程可以提供的许多细节 游戏中显示的所有对象,作为
pygame.sprite.sprite
的子类。例如,所有对象、敌人、主角、镜头等。。。相似者需要有属性来记录他们的屏幕位置。例如,只有敌人在被摧毁时才需要“点数”。通过正确的类继承,您可以最小化所需的代码量

但要控制游戏场景中的所有这些,Pygame不提供基类——您必须创建自己的游戏循环,它很可能位于函数中——或者在您自己创建的类中,它不从任何其他Pygame类继承

例如,我设计了一些代码作为“塔台战略”游戏的基础。选中此项,因为场景中的所有对象都是从
basetowerpower
对象自然派生的