谁能帮我找出为什么我的 p5 sketch 每次 运行 都会崩溃?
Can anybody help me find out why my p5 sketch is crashing every time I run it?
遗憾的是,我不能将所有代码都放在这个 window 中,但这里是项目的 link:
https://editor.p5js.org/thing1/sketches/KIsvdFvPt
如果愿意,您可以复制它进行编辑并查看所有文件。很抱歉,这是一个如此模糊的问题,但我为这个程序付出了如此多的努力,现在感觉一切都白费了。感谢您提供任何帮助 :) 我非常感谢您提供的任何帮助。非常感谢!
首先,如评论中所述,您在遍历数组时要从数组中删除。这在游戏开发中经常需要,通常的做法是向后遍历数组:
for (let i = comets.length - 1; i >= 0; i--) {
// do your removing
}
然而,这只是问题的一部分。您的草图冻结的原因是因为您的 Comet
class:
中有以下代码
polygon(this.x,this.y,this.health*2,this.health/5)
因此,您将多边形的 radius
和 npoints
设置为取决于小行星健康状况的值,您可以想象为什么负值时它不喜欢它设置!
将此代码包装在一个简单的 if:
if (this.health > 0) {
polygon(this.x, this.y, this.health*2, this.health/5)
}
遗憾的是,我不能将所有代码都放在这个 window 中,但这里是项目的 link: https://editor.p5js.org/thing1/sketches/KIsvdFvPt
如果愿意,您可以复制它进行编辑并查看所有文件。很抱歉,这是一个如此模糊的问题,但我为这个程序付出了如此多的努力,现在感觉一切都白费了。感谢您提供任何帮助 :) 我非常感谢您提供的任何帮助。非常感谢!
首先,如评论中所述,您在遍历数组时要从数组中删除。这在游戏开发中经常需要,通常的做法是向后遍历数组:
for (let i = comets.length - 1; i >= 0; i--) {
// do your removing
}
然而,这只是问题的一部分。您的草图冻结的原因是因为您的 Comet
class:
polygon(this.x,this.y,this.health*2,this.health/5)
因此,您将多边形的 radius
和 npoints
设置为取决于小行星健康状况的值,您可以想象为什么负值时它不喜欢它设置!
将此代码包装在一个简单的 if:
if (this.health > 0) {
polygon(this.x, this.y, this.health*2, this.health/5)
}