我试图使用在类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
答案 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”属性的事实。它可能是玩家,怪物,宇宙飞船,香蕉......