在另一个类中使用Class&#39的pygame.rect

时间:2016-04-23 15:02:55

标签: python pygame

我试图使用在类player2中的player1中创建的self.rect.x。该代码旨在让玩家2追逐玩家1.下面是我当前代码的粗略总结。

class player1 (pygame.sprite.Sprite)

  def __init__ (self,x,y):

  #creates img, rect, x and y



class player 2 (pyagme.sprite.Sprite)

  def __init__ (self,x,y)

  #repeats process

  def chase (self):

    self.rect.x += self.change_x
    self.rect.y += self.change_y

    dx = self.rect.x - player1.rect.x
    dy = self.rect.y - player1.rect.y
    dist = math.hypot(dx,dy)
    dx = dx/dist
    dy = dy/dist

    self.rect.x += dx * self.change_x
    self.rect.y += dx * self.change_y

1 个答案:

答案 0 :(得分:0)

你非常接近解决方案。你需要的是player2里面对player1的引用。

./HAXM\ installation

像这样实例化您的类:

class player2 (pyagme.sprite.Sprite)

  def __init__ (self, x, y, chased_object)
      self.chased_object = chased_object

  def chase (self):
    # same code as before, but replace all "player1" by "self.chased_object"

为了清晰代码,将引用变量命名为“chased_object”而不是“chased_player”可能很重要,以表示player2可以追逐任何具有“rect”属性的事实。它可能是玩家,怪物,宇宙飞船,香蕉......