2013-04-13 44 views
0

我是pygame的新手,正在制作一款僵尸游戏。我用箭头键控制着人类,当僵尸首次创建时,我想让僵尸跑向玩家的位置。我不确定如何确定玩家将僵尸设置在正确方向的位置。僵尸不必追随人类,只是在僵尸创建时朝着玩家位置的方向前进。我如何确定精灵在pygame中的位置?

class Human(pygame.sprite.Sprite): 
def __init__(self): 
    pygame.sprite.Sprite.__init__(self) 
    self.image=pygame.image.load("human.jpg") 
    self.image=self.image.convert() 
    self.rect=self.image.get_rect() 
    self.x=100 
    self.y=430 
    self.dx=50 
    self.dy=0 
def update(self): 
    keys=pygame.key.get_pressed() 
    if keys[pygame.K_LEFT]: 
     self.x-=self.dx 
    if keys[pygame.K_RIGHT]: 
     self.x+=self.dx 
    self.rect.center=(self.x,self.y) 
class ZombieChase(pygame.sprite.Sprite): 
def __init__(self): 
    pygame.sprite.Sprite.__init__(self) 
    self.image=pygame.image.load("zombie.jpg") 
    self.image=self.image.convert() 
    self.rect=self.image.get_rect() 
    self.reset() 
    self.dx=15 
    self.dy=15 
    #self.xStart=random.randrange(0,screen.get_width()) 

def update(self): 
    self.rect.centery+=self.dy 

    self.rect.centerx+=self.dx 

    if self.rect.top>screen.get_height(): 
     self.reset() 
    if self.rect.right>screen.get_width(): 
     self.reset() 
    if self.rect.left<0: 
     self.reset() 


def reset(self): 
    self.rect.top=0 
    speed=random.randrange(20,36) 
    xStart=random.randrange(0,screen.get_width()) 
    yStart=0 
    #humanx, humany !!!!!!this is where i don't know what to put!!!!! 
    try: 
     self.dx=(humanx-xStart)/speed 
    except ZeroDivisionError: 
     self.dx=0 
    try: 
     self.dy=(humany-yStart)/speed 
    except ZeroDivisionError: 
     self.dy=1 

    self.rect.centerx=xStart 

对不起,如果选项卡不正确。

+1

一个精灵有一个矩形属性,它是在屏幕上的位置。 –

+0

请给我你的代码。 – PygameNerd

回答

3

如果你的子类pygame.sprite.Sprite的位置是zombie.rect。对于坐标,zombie.rect.centerzombie.rect.topleft