【发布时间】:2019-01-12 04:34:24
【问题描述】:
p5.js 有一个奇怪的问题。基本上,有一个重力源(红色方块)和一个围绕红色方块运行的蓝色方块(代码中称为像素)。 proc() 函数在时间上迈出了一步并继续对两个对象进行物理处理,draw() 函数只是绘制了这两个正方形。问题是关于我的sketch.js 文件。当它有序时:
env.draw();
env.proc();
它运作良好,但当它是:
env.proc();
env.draw();
它的工作方式非常奇怪。 以下是快速预览:
运作良好:http://home.elka.pw.edu.pl/~eprokopc/goodGrav/index.html
工作不佳: http://home.elka.pw.edu.pl/~eprokopc/badGrav/index.html
Github 存储库: https://github.com/kekore/BadGravity
这两个示例仅在sketch.js 中的这两行顺序不同。我只是好奇为什么要这样画正方形。
【问题讨论】:
-
您能发一个minimal reproducible example 来说明问题吗?请注意,这不应该是您的完整程序,而应该只是足够的代码,以便我们可以复制并粘贴它来自己查看问题。
-
当然。你在这里 alpha.editor.p5js.org/kekore/sketches/SyI2IJrSm 奇怪的是,它绘制了不同大小的正方形,即使在这个例子中正方形的大小是用常数数字硬编码的。
-
调试所有代码非常困难。你有一个更简单的例子来隔离错误的行为吗?像画一个硬编码的正方形这样简单的东西?
-
当然。我试图重写它,所以它只使用两个基本类。我希望它现在更简单。只需在 draw() 函数中评论 rects:alpha.editor.p5js.org/kekore/sketches/BkT-ExBrm
-
看看对规模的呼吁。比例将改变一切的绘制方式。如果您在 force.scaleTo 调用上方绘制矩形,您将获得良好的行为。如果您在调用缩放后绘制矩形,则会将缩放应用于矩形和不良行为