私は基本的なゲームを作成しようとしていますが、私はPythonのプログラミングシーンにはかなり新しいです。私は、2つのクラス(プレイヤーと敵クラス)で、プレイヤーと敵の健康のようなクラス変数にアクセスしたい、またはその逆の問題に遭遇しました。これを行ういくつかの方法は何ですか?あるクラスから別のクラスに変数を渡す方法はありますか?
ここでは、より良い私が求めているものを強調するためのコードです:
class Player(object):
def __init__(self, image):
self.x = 100
self.y = 240
self.health = 30
self.defense = 25
self.image = image
self.black = (0, 0, 0)
self.draw()
def draw(self):
screen.blit(self.image, (self.x, self.y))
line = pygame.draw.rect(screen, self.black, (80, 300, 100, 5))
def attack(self):
pass
class Enemy(object):
def __init__(self, image):
self.x = 480
self.y = 240
self.health = 20
self.defense = 15
self.image = image
self.black = (0, 0, 0)
self.draw()
def draw(self):
screen.blit(self.image, (self.x, self.y))
line = pygame.draw.rect(screen, self.black, (460, 300, 100, 5))
def attack(self):
pass
を基本的に、私は一つのクラスから「self.health」のようなものを取る、と簡単にアクセスする方法を理解していないが、他のクラスから。私は戻りメソッドなどを使用するいくつかのメソッドを試してみましたが、これを行う簡単な方法があれば私は興味があります。ヘルプは高く評価されています!
これらは「クラス変数」ではありません。あなたのタイトルは間違いです。 "別のクラスの変数"はOKです。 – zvone
これらのクラスのインスタンスを作成し、パブリック(編集の対象にする)か、またはそれらをカプセル化して外部スコープに変更しないprivateにする必要があります。それらがプライベートである場合、それらの値を返すメソッドが必要です。 –
通常、ゲーム全体を処理するオブジェクトがあります。それを「ゲーム」と呼んでみましょう。それは 'self.player = Player()'と 'self.enemy = Enemy()'にアクセスするでしょう。それでは簡単です... 'game.enemy.health' – zvone