1

我是我高中计算机编程专业的学生,​​真的需要帮助才能使广场成为船只无法进入的障碍,一旦你在广场上射击,子弹也会消失,同样的事情也是如此。如果它们相互碰撞,两艘船都会死亡。请帮助我知道我的问题不是最好的措辞,但我真的需要帮助。

代码链接在这里https://docs.google.com/file/d/0B-Pb_T-Vgr3-TnhRY0lvVjJHX0U/edit?usp=sharing

4

1 回答 1

1

我建议您创建一个扩展 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)
于 2013-06-11T06:00:20.380 回答