【问题标题】:I can not figure out how to make the code build blocks one by one我不知道如何一一制作代码构建块
【发布时间】:2021-10-21 12:23:22
【问题描述】:

这是我第一次在这里提出问题,我很沮丧,因为我已经尝试了几个小时来解决这个问题。为什么我的代码没有单独构建每个多维数据集。代码应该用立方体水平填充画布,填充另一行后换行。

void setup() {
  size(600,600);
  background(0);
  frameRate(1);
}
int n=0;
int y=0;
int xCoord=0;
void draw() {
    while(n<10)
    {
        for(int i = 0; i<10; i++)
        {
            rect(xCoord, y, 60,60);
            xCoord += 60;
        }
         xCoord = 0; n++; y+=60; 
         
    }
}

【问题讨论】:

  • 能否提供更多代码,minimal reproducible example。这就是你所拥有的(任何其他 js 或 html)吗?
  • 这是javascript还是java?
  • 呃javascript没有函数返回类型
  • 嗨。我在处理 3 工作,这是 java
  • void draw() { while (n

标签: java matrix processing


【解决方案1】:

请记住,每帧都会调用绘图函数。如果你想制作动画,你必须确保每一帧都显示一些新信息。

您的 while 循环在 一次 的 draw 迭代中完成(并因此构建所有块)。因此,您还将看到 所有 在第一次绘制迭代完成后绘制的块。因此,您不会看到它们是一一构建的。

如果要逐帧绘制它们,则需要确保在每次绘制迭代之间更改块的数量。

伪代码:

var currentAmountOfBlocks;

fun draw:
   // Draw currentAmountOfBlocks blocks.
   for (i = 0; i <= currentAmountOfBlocks; i++)
   {
       drawBlock();
   }
   currentAmountOfBlocks++

Processing 会在你想要的 frameRate 处为你这样调用它

draw(); // 1 block
draw(); // 2 blocks
draw(); // ... blocks 
draw(); // n blocks

你基本上在做:

fun draw:
   drawAllBlocks()

为您处理类似的调用:

draw(); // all blocks
draw(); // all blocks
draw(); // all blocks
draw(); // all blocks

是的,您有一个计数到十个块的 while 循环,但它在您的第一次 draw() 迭代完成之前完成。

【讨论】:

  • 非常感谢!你的解释帮助我更好地理解我在做什么!
猜你喜欢
  • 2016-04-24
  • 2023-02-03
  • 2021-08-22
  • 2020-09-19
  • 2016-07-18
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多