如何在pygame中确定精灵的位置?

时间:2013-04-13 14:19:06

标签: position pygame sprite

我是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 :(得分:3)

如果您继承pygame.sprite.Sprite,则位置为zombie.rect。对于坐标,zombie.rect.centerzombie.rect.topleft