我最近开始自学游戏编程.有人建议我从Python开始,我得到了"用Python和Pygame开始游戏开发:从新手到专业"的书.我得到了一个他们教导Vector和创建Vector2类的部分.一切顺利,直到我试图超过除法运算符.我的代码是这样的:
class Vector2(object):
def __init__(self, x=0.0, y=0.0):
self.x = x
self.y = y
def __str__(self):
return "(%s, %s)"%(self.x, self.y)
@classmethod
def from_points(cls, P1, P2):
return cls(P2[0] - P1[0], P2[1] - P1[1])
def __add__(self,rhs):
return Vector2(self.x + rhs.x, self.y + rhs.y)
def __sub__(self,rhs):
return Vector2(self.x - rhs.x, self.y - rhs.y)
def __mul__(self, scalar):
return Vector2( self.x*scalar, self.y*scalar)
def __div__(self, scalar):
return Vector2( self.x/scalar, self.y/scalar)
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试调用"/"运算符时,会显示:
AB = Vector2(10.0,25.0)
print(AB) # <<<<(10.0, 25.0)
v1 = AB + Vector2(20.,10.)
print(v1) # <<<<(30.0, 35.0) …
Run Code Online (Sandbox Code Playgroud)