ベクトル


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

未完成ながらもRogueで利用していた2dベクタです。

class Vector2d:
  def __init__(self,x,y):
    self.x=x
    self.y=y
  def __add__(self,t):
    return Vector2d(self.x+t.x,self.y+t.y)
  def __sub__(self,t):
    return Vector2d(self.x-t.x,self.y-t.y)
  def inv(t):
    return Vector2d(self.x,self.y)
  def __iadd__(self,t):
    self.x+=t.x
    self.y+=t.y
    return self
  def __isub__(self,t):
    self.x-=t.x
    self.y-=t.y
    return self
  def __eq__(self,t):
    if type(t)==tuple and len(t)==2:
      return self.x==t[0] and self.y ==t[1]
    if isinstance(t,Vector2d):
      return self.x==t.x and self.y == t.y
    else:
      return False
  def dump(self):
    print('vec:%d,%d'%(self.x,self.y))
    return self