2

私は作成中の単純なゲームを持っています。私は基本的にグループに入れたゾンビクラスを持っているので、無期限に複数のインスタンスを持つことができます:

class zombie(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self,zombiegroup)
        self.pos=(random.randrange(5,695),random.randrange(5,455))
        self.image=zombie_image
        self.rimage=self.image
        self.rect=self.image.get_rect().move(self.pos)
        self.speed=5


    def update(self):
        zx=self.rect.topleft[0]-player.rect[0]
        zy=self.rect.topleft[1]-player.rect[1]
        rads=math.atan2(-zy, zx)
        rads %= 2*pi
        angle = math.degrees(rads)
        self.rimage=pygame.transform.rotate(self.image, angle-90)
        size=self.rimage.get_size()

        if player.rect[0]<self.rect[0]:
            self.rect[0]-=self.speed

        if player.rect[0]>self.rect[0]:
            self.rect[0]+=self.speed

        if player.rect[1]<self.rect[1]:
            self.rect[1]-=self.speed

        if player.rect[1]>self.rect[1]:
            self.rect[1]+=self.speed


        screen.blit(self.rimage, (self.rect.topleft[0]-size[0]/2,self.rect.topleft[1]-size[1]/2))

私のグループは次のとおりです。

zombiegroup=pygame.sprite.Group()

それは非常に基本的なことですが、これらのゾンビのそれぞれが互いに衝突するかどうかをテストする方法を知りたいです. それを行うためにグループを処理する方法、または pygame グループを使用する必要があるかどうかさえわかりません。

みんなありがとう、

アレックス

4

1 に答える 1

1

最速ですが汚い方法は、ゾンビ自体よりもわずかに小さい長方形を追跡し、それらが衝突するかどうかを確認することです。ピクセルごとにチェックすると、FPS に大きな打撃を与えます。

于 2013-03-11T22:04:34.843 に答える