Java 我将如何在垂直堆栈中绘制4个正方形并前后移动?

Java 我将如何在垂直堆栈中绘制4个正方形并前后移动?,java,processing,Java,Processing,如何在垂直堆栈中绘制4个正方形?使用循环前后移动,以避免在绘制4个正方形时重复相同的代码4次。这些方块应该作为一个整体移动,当其中任何一个碰到窗户边缘时,所有方块都会改变方向 float location; float sizeWidth; float sizeHeight; float direction; boolean moving; void setup() { size (1280, 720); location = 0; direction = height/720;

如何在垂直堆栈中绘制4个正方形?使用循环前后移动,以避免在绘制4个正方形时重复相同的代码4次。这些方块应该作为一个整体移动,当其中任何一个碰到窗户边缘时,所有方块都会改变方向

float location;
float sizeWidth;
float sizeHeight;
float direction;
boolean moving;

void setup() {
  size (1280, 720);
  location = 0;
  direction = height/720;
  sizeWidth = 90;
  sizeHeight = 90;
  moving = true;
}

void draw() {

  background(255);

  stroke(0);
  strokeWeight(1);

  for (int i = 0; i < width; i = i + 90) {
    line(0, i, 1280, i);
    line(i, 0, i, 720);
  }

  fill (255, 147, 79);
  int steppedPos = (int)(location/sizeHeight+0.5);
  rect(0, steppedPos*sizeHeight, sizeWidth, sizeHeight);


  if (moving) {
    location = location + direction;
    if (location + sizeHeight > height || location < 0){
      direction = direction * -1;
      location = location + direction;
    }
  }
}



void keyPressed() {
  if (key == ' ') {
    moving = !moving;
  }
}
浮动位置;
浮子尺寸;
浮子尺寸;
浮动方向;
布尔移动;
无效设置(){
规模(1280720);
位置=0;
方向=高度/720;
尺寸宽度=90;
尺寸高度=90;
移动=真;
}
作废提款(){
背景(255);
冲程(0);
冲程重量(1);
对于(int i=0;i高度| |位置<0){
方向=方向*-1;
位置=位置+方向;
}
}
}
按下void键(){
如果(键==''){
移动=!移动;
}
}
创建一个
正方形
而不是单个变量
位置
尺寸宽度
尺寸高度
方向

classsquare{
浮动位置X;
浮动定位;
浮子尺寸;
浮子尺寸;
浮动方向;
颜色颜色;
正方形(浮动x、浮动y、浮动w、浮动h、浮动d、颜色c){
位置x=x;
位置y=y;
尺寸宽度=w;
尺寸高度=h;
方向=d;
col=c;
}
// [...]
}
为正方形添加一个数组变量:

Square[];
以以下方式创建正方形:

void setup(){
// [...]
正方形=新正方形[4];
对于(int i=0;i
添加可以绘制方形对象的方法:

classsquare{
// [...]
作废提款(){
填充(col);
int steppedPosX=(int)(位置x/sizeWidth+0.5);
int steppedPosY=(int)(位置/大小权重+0.5);
rect(steppedPosX*sizeWidth,steppedPosY*sizeHeight,sizeWidth,sizeHeight);
}
}
在循环中绘制正方形:

void draw(){
// [...]
对于(int i=0;i
添加移动方形对象的方法:

classsquare{
// [...]
无效移动(){
位置Y=位置Y+方向;
如果(位置Y+尺寸高度>高度| |位置Y<0){
方向=方向*-1;
位置Y=位置Y+方向;
}
}
}
在循环中移动正方形:

void draw(){
// [...]
如果(移动){
对于(int i=0;i
请参见示例:

classsquare{
浮动位置X;
浮动定位;
浮子尺寸;
浮子尺寸;
浮动方向;
颜色颜色;
正方形(浮动x、浮动y、浮动w、浮动h、浮动d、颜色c){
位置x=x;
位置y=y;
尺寸宽度=w;
尺寸高度=h;
方向=d;
col=c;
}
作废提款(){
填充(col);
int steppedPosX=(int)(位置x/sizeWidth+0.5);
int steppedPosY=(int)(位置/大小权重+0.5);
rect(steppedPosX*sizeWidth,steppedPosY*sizeHeight,sizeWidth,sizeHeight);
}
无效移动(){
位置Y=位置Y+方向;
如果(位置Y+尺寸高度>高度| |位置Y<0){
方向=方向*-1;
位置Y=位置Y+方向;
}
}
}
布尔移动;
正方形[];
无效设置(){
规模(1280720);
正方形=新正方形[4];
对于(int i=0;i
查看周一的讲座!我们正好谈到了这一点

戴姆?