我是高中的计算机程序设计专业的学生,真的需要帮助才能让广场成为船只无法进入的障碍物,一旦你在广场上射击同样的东西,子弹就会消失。如果它们相互碰撞,两艘船都会死亡。请帮助我知道我的问题不是最好的措辞,但我真的需要帮助。
代码链接在https://docs.google.com/file/d/0B-Pb_T-Vgr3-TnhRY0lvVjJHX0U/edit?usp=sharing
答案 0 :(得分:1)
我建议您创建一个GameObject类,它扩展pygame.sprite.Sprite以及扩展GameObject的Ship和Bullet类。这允许您轻松添加两者都需要的属性,例如速度和加速度,并且您可以创建一个碰撞方法,该方法被特定行为两者覆盖。这里额外的好处是pygame.sprite.collide_rect将正常工作:
if (pygame.sprite.collide_rect(sprite1, sprite2)):
# sprite1 and sprite2 are colliding!
# do something, such as calling sprite1.collide(sprite2)
# and sprite2.collide(sprite1)
因此,pygame.sprite.collide_rect检查两个精灵是否使用每个精灵的Sprite.rect属性发生碰撞。也可以使用rect.colliderect重新概括此功能:
sprite1.rect.colliderect(sprite2.rect)