java - 我不知道如何一一制作代码构建块
问题描述
这是我第一次在这里提出问题,我很沮丧,因为我已经尝试了几个小时来解决这个问题。为什么我的代码没有单独构建每个多维数据集。代码应该用立方体水平填充画布,在填充另一行后改变行。
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;
}
}
解决方案
请记住,每帧都会调用绘图函数。如果你想为某些东西制作动画,你必须确保每一帧都显示一些新信息。
您的 while 循环在一次绘图迭代中完成(并因此构建所有块) 。因此,您还将看到在第一次绘制迭代完成后绘制的所有块。因此,您看不到它们是一一构建的。
如果要逐帧绘制它们,则需要确保在每次绘制迭代之间更改块的数量。
伪代码:
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() 迭代完成之前完成。
推荐阅读
- python - 如何按顺序合并python3中的3个dict列表
- android - 如何创建一个条形图,如 android 中的图像所示,以秒分钟和小时格式显示时间?
- python - Python - 可以从特定线程解锁信号量获取吗?
- sql - 如何根据sql中的时间戳获取最新的两条记录
- javascript - Android SpeechRecognition 上的麦克风停止工作
- angular - Angular 单元测试 - 在 HttpInterceptor 中测试 retryWhen
- r - 网页抓取以仅从网页中提取表值
- python - 我的 django 查询:如何提高列表视图的速度
- forms - 如何通过 Postman 发送只有 1 个文本框和 1 个按钮的表单
- javascript - 我在“Beginning Node.JS”一书中做这个例子时遇到了一个问题。目的是设置requireJS