void setup(){
size(800,800);
background(0);
}
void draw() {
int[]x= {20,40,60,80,100,120};
fill (255,0,00);
for (int i = 0; i <x.length; i ++){
ellipse (i*6, 100,10,10);
}
}
我试图使“蠕虫”在画布上沿直线水平移动。附带的是“蠕虫”。我不知道从哪里开始,因为我需要立即移动整个数组。谢谢!
答案 0 :(得分:1)
将蠕虫的当前位置存储在全局数组中,其中头部为第一个位置。
cordova run ios --device
通过蠕虫的两个部分之间的距离更改每个帧中的位置。循环移动数组中的当前位置:
int[] x= {30,24,18,12,6,0};
int step = 6;
在蠕虫的头部,如果到达窗口的结尾或窗口的开头,请更改方向:
draw() {
.....
for (int i = x.length-1; i > 0; --i ){
x[i] = x[i-1];
}
x[0] += step;
.....
}
以相反的顺序绘制蠕虫:
if ( x[0] >= width || x[0] < 0)
step *= -1;
完整代码如下:
for (int i = x.length-1; i >= 0; --i ){
ellipse(x[i], 100, 10, 10);
}
查看预览:
答案 1 :(得分:0)
移动值数组与移动单个值没什么不同。
让我们看看如何移动单个值:
float x = 0;
void draw(){
background(0);
ellipse(x, height/2, 20, 20);
x++;
}
要移动值数组,您将执行相同的操作,但要对数组的每个索引进行操作。像这样:
float[] xArray = {20, 40, 60};
void draw(){
background(0);
for(int i = 0; i < xArray.length; i++){
ellipse(xArray[i], height/2, 20, 20);
xArray[i]++;
}
}
无耻的自我促进:here是有关Processing中动画的教程,{{3}}是有关Processing中数组的教程。