我正在使用ipad上的pythonista
在Python中制作一个小游戏。
我创建了一个矢量类,其中包含要添加的坐标和几个函数,获取长度,设置长度。我有另一个名为Game的类,我有我的游戏变量和函数。我可以定义一个矢量让我们说
self.pos=vector(200,200)
但是,如果我想计算出长度,我就无法调用getlength
函数,因为我不在合适的班级。
示例(我已经取出了大部分代码):
class vector(objet):
def __init(self,x,y):
self.x=x
self.y=y
def getlength(self):
return sqrt(self.x**2+self.y**2)
def addvec(self,a,b):
return vector(a.x+b.x,a.y,b.y)
class Game(object):
def __init__(self):
self.pos=vector(200,200)
self.pos=vector(200,200)
def loop(self):
## here i want something like d= length of self.pos !!
class MyScene(Scene):
def setup(self):
self.game=Game()
def draw(self):
self.game.loop()
run(MyScene())
谢谢, 尼古拉斯
编辑:电话
sum=addvec(self.pos,self.pos2)
显然不起作用,因为自我是一个游戏类。我该怎么办?
答案 0 :(得分:4)
为什么要为getLength函数使用两个参数?第二个是矢量(我假设)所以最好使用:
def getLength(self):
return sqrt(self.x**2+self.y**2)
然后只需致电:
d = self.pos.getLength()
如果你想要将两个向量一起添加,你可以这样做:
def add(self,other_vector):
return vector(self.x+other_vector.x,self.y+other_vector.y)
所以你打电话:
sum = self.pos.add(some_other_vector)
BTW:类应始终用CamelCase编写。也许您应该在python中阅读有关面向对象编程的内容:http://code.tutsplus.com/articles/python-from-scratch-object-oriented-programming--net-21476