【发布时间】:2017-01-08 02:53:40
【问题描述】:
我正在制作这款经典风格的小行星游戏,并且我已经克服了随之而来的所有挑战。现在有一个新的。
当一颗子弹击中其中一颗小行星时,预期的行为是它消失了,然后在其位置出现三到四颗较小的小行星,每颗小行星的速度都是随机的,因此看起来像是一种爆炸。但是我刚刚录制的这段视频中显示了这种奇怪的行为:
正如你所看到的,它完成了它应该做的 90%,小行星消失了,然后我按照它的速度创造了四个新的更小的小行星,但是由于某种原因,当它们应该像普通小行星一样表现时它们消失了,因为他们继承了一切。
游戏源码可以在这里找到:https://github.com/JuanBonnett/pysteroids
负责处理碰撞 Bullet->Asteroid 的类是:
asteroids.py 主文件创建所有对象,船、小行星发生器和碰撞探测器对象。
physics.py CollisionDetector 类在哪里,它会检测它们何时发生碰撞并调用其依赖项来处理碰撞
asteroid.py 有一个小行星发生器,它在碰撞的地方产生较小的小行星,我称之为碎片。
【问题讨论】:
-
考虑在您的代码中添加一些日志记录,以记录每颗小行星何时以及为何消失。
-
@Amber 你是什么意思?有什么我该怎么做的例子吗?
-
使用
print()(或@Amber 所说的记录)查看变量中的值以及执行的代码部分。它有助于发现问题。