gpt4 book ai didi

python - 与敌人相撞后的弹丸问题如何解决?

转载 作者:行者123 更新时间:2023-12-04 09:46:14 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to detect collisions between two rectangular objects or images in pygame

(1 个回答)


11 个月前关闭。




我试图让我的子弹与我的敌人碰撞然后消失,但它只是因为某种原因扔掉了它们

    for bullet in bullets[:]:
if bullet.y + bullet.x < enemys1.hitbox[1] + enemys1.hitbox[3] and bullet.y + bullet.x > enemys1.hitbox[1]:
if bullet.x - bullet.y > enemys1.hitbox[0] and bullet.x - bullet.y < enemys1.hitbox[0] + enemys1.hitbox[2]:
enemys1.hit()
bullets.pop(bullets.index(bullet))


这是我的弹丸课

class projectile(object):
def __init__(self, x, y, dirx, diry, color):
self.x = x
self.y = y
self.dirx = dirx
self.diry = diry
self.slash = pygame.image.load("heart.png")
self.rect = self.slash.get_rect()
self.rect.topleft = ( self.x, self.y )
self.speed = 10
self.color = color

def move(self):
self.x += self.dirx * self.speed
self.y += self.diry * self.speed

def draw(self, window):
self.rect.topleft = (round(self.x), round(self.y))

window.blit(slash, self.rect)



任何帮助表示赞赏谢谢!

最佳答案

我建议使用 pygame.Rect 命中框的对象和 colliderect() 找到交点:

for bullet in bullets[:]:
hit_rect = pygame.Rect(*enemys1.hitbox)
if bullet.rect.colliderect(hit_rect):
enemys1.hit()

关于python - 与敌人相撞后的弹丸问题如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62096426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com