2

非常に単純な答えを持っていると思われる問題に遭遇しましたが、短い Google 検索では説明が難しく、このトピックについて何も見つかりません。

だから、私が取り組んでいる最近のゲームでは、ゲーム内のすべてのブロック/タイルに複数のタイプのオブジェクトがあります:

    class Char(object):
        ...
        def update(self):
            ...
        def move(self, direction):
            ...

また

    class Dirt(object):
        ...

明らかに、これらすべてのクラスをメイン プログラムで定義するのは非常に面倒です。実際のゲーム ウィンドウの画面クラス。さらに、gameObjects という 2 番目のモジュールを作成すると、すべてのゲーム オブジェクトが main で定義された変数にアクセスできないという問題が発生します。

では、どうすればクラスを整理またはグループ化できますか? 私はPythonの初心者なので、簡単な答えをいただければ幸いです。

4

1 に答える 1

3

通常、クラスと同じ名前のオブジェクトを持ちたくありません。それらが同じスコープで定義されていない場合、実際には競合はありませんが、それでも混乱します。

ただし、典型的な Python 命名規則に従っていれば、これは問題になりません。クラスは大文字で始まり、変数は小文字で始まります。したがって、変数は と呼ばれscreen、クラスが であることは問題ではありませんScreen

一方、関連するクラスをモジュールにまとめたいと思うこともあるでしょう。モジュールで定義されたクラスのオブジェクトはgameObjects、メインで定義された変数にアクセスできませんが、アクセスしたくありません。グローバル変数は、ほとんどの場合、悪い考えです。オブジェクトが変数にアクセスする必要がある場合は、その変数をコンストラクターに渡します。

独自の大規模なプロジェクトを作成する前に、他のいくつかの大規模なプロジェクトを調べて、それらがどのように構成されているかを確認する必要があります。

于 2012-10-26T00:04:56.607 に答える