我是我高中计算机编程专业的学生,真的需要帮助才能使广场成为船只无法进入的障碍,一旦你在广场上射击,子弹也会消失,同样的事情也是如此。如果它们相互碰撞,两艘船都会死亡。请帮助我知道我的问题不是最好的措辞,但我真的需要帮助。
代码链接在这里https://docs.google.com/file/d/0B-Pb_T-Vgr3-TnhRY0lvVjJHX0U/edit?usp=sharing
我是我高中计算机编程专业的学生,真的需要帮助才能使广场成为船只无法进入的障碍,一旦你在广场上射击,子弹也会消失,同样的事情也是如此。如果它们相互碰撞,两艘船都会死亡。请帮助我知道我的问题不是最好的措辞,但我真的需要帮助。
代码链接在这里https://docs.google.com/file/d/0B-Pb_T-Vgr3-TnhRY0lvVjJHX0U/edit?usp=sharing
我建议您创建一个扩展 pygame.sprite.Sprite 的 GameObject 类以及扩展 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)