我正在用 pygame 上的地图制作我的第一个游戏。 游戏中有些敌人正在跟踪你,你可以通过点击他们来杀死他们,但是碰撞点函数始终为 False 并且永远不会变为 True,所以你永远不会杀死敌人精灵
def run(self):
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
self.check_for_player_damage(event.pos)
def check_for_player_damage(self,mouse_pos):
for sprites in self.enemys:
if sprites.rect.collidepoint(mouse_pos):
sprites.kill()
self.enemys = [Enemy((randint(500,1800),randint(500,1300)),[self.all_sprites,self.enemy_sprites],self.player,self.collision_sprites) for enemy in range(0,20)]
这是敌人名单
class Enemy(pygame.sprite.Sprite):
def __init__(self,pos,groups,player,collision_sprites):
super().__init__(groups)
self.player = player
self.collision_sprites = collision_sprites
self.image = pygame.Surface((20,30))
self.rect = self.image.get_rect(topleft = pos)
self.direction = pygame.Vector2()
self.speed = 200
我还尝试更改敌人精灵,并尝试对平铺的对象精灵(树)使用碰撞点功能,但只有其中一些被删除,其他则没有。
尝试做,self.rect = pg.Rect(pos, (20, 30))。