好吧,在查看了这个问题三遍之后,发现没有与我的问题真正相关的内容,我现在要问了。
我很好奇并决定尝试看看我是否可以在帆布上制作一个非常基本的落沙玩具。
我确实成功地做到了,因为“沙子”像它应该在地面上堆积一样,但由于空气传播粒子和地面粒子之间的撞击检测,它会很快减慢。
自己看看编辑:可能是死链接,这里是一个 JsFiddle。
通过单击并按住鼠标按钮生成粒子。在你生成了大约 200 个粒子之后,它就会跪下。
for(i in P){
if(P[i].Y<canvas.height-1){
P[i].Y++
for(j in G){//This loop seems to cause the lag
if(P[i].X==G[j].X&&P[i].Y==G[j].Y-1){
G[G.length]={X:P[i].X,Y:P[i].Y}
}
}
}else{
G[G.length]={X:P[i].X,Y:P[i].Y}
}
}
我只是想知道我是否做错了什么;我很确定它不应该落后那么严重。我也想知道是否有办法在没有嵌套循环的情况下做到这一点,但似乎我能够完成这项工作的唯一方法是检查每个单独的空气传播粒子与每个单独的地面粒子,这使得它滞后。
如果链接断开,请说出这个词,我将在此处发布整个代码。
谢谢