碰撞点功能无法正常工作

问题描述 投票:0回答:1

我正在用 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

我还尝试更改敌人精灵,并尝试对平铺的对象精灵(树)使用碰撞点功能,但只有其中一些被删除,其他则没有。

python pygame
1个回答
0
投票

尝试做,self.rect = pg.Rect(pos, (20, 30))。

© www.soinside.com 2019 - 2024. All rights reserved.