嗨,我正在制作游戏,我遇到了绊脚石,这是我的代码的一部分:
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没有多少经验
答案 0 :(得分: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
通过这种方式,可以轻松区分类和对象。
答案 1 :(得分:0)
确定。另一个人说的是你需要将“玩家”设置为乔治等变量,然后调用George.move()
所以
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:
george = Player()
george.move()
print george.x
应该有用。你可以把“乔治”变成你想要的任何东西,只要确保它是一致的。