0

こんにちは、私はゲームを作成している途中で、つまずきにぶつかりました。これは以下のコードの一部です。

class player(object):
    def __init__(self):
        self.x = 10
        self.y = 10
        self.amount = 5
        self.answer = 0

     def move(self):
        self.x += self.amount
        self.y += self.amount


while True:
    player().move()
    print player().x

これはおそらく本当に基本的な間違いですが、move() 関数が何をしても、self.x または self.y の値が変更されることはないようです。誰かが私を正しい方向に突き刺してください! ありがとう、私はおそらく非常に基本的な何かが欠けていることに気づきました.OOの経験はあまりありません

4

2 に答える 2

4
player().move()    # create a player and move it
print player().x   # create another player and print its x

あなたが意味したことは次のとおりです。

aplayer = player()
aplayer.move()
print aplayer.x

 

PS: 一般的な方法は、クラス名を大文字にすることです。

class Player(object):
    def __init__(self):
        self.x = 10
        self.y = 10
        self.amount = 5
        self.answer = 0

     def move(self):
        self.x += self.amount
        self.y += self.amount


player = Player()
player.move()
print player.x

このようにして、クラスとオブジェクトを簡単に区別できます。

于 2013-04-06T20:20:33.267 に答える