Processing 加工-通过按键‘;1’;或键‘;2’;这样可以分别拾取形状1或形状2

Processing 加工-通过按键‘;1’;或键‘;2’;这样可以分别拾取形状1或形状2,processing,Processing,在草图上绘制两个形状(例如矩形和圆形)。使用上、下、左和右键控制选定形状的移动。按“1”键或“2”键可选择形状,以便分别拾取形状1或形状2。我想按“1”键或“2”键选择形状,但它们无法运行` int x = 0; int y = 0; int ex= 0; int ey= 0; void setup(){ size (400, 400); } void draw(){ background(80); rect(x, y, 25,25); ellipse(50, 50,

在草图上绘制两个形状(例如矩形和圆形)。使用上、下、左和右键控制选定形状的移动。按“1”键或“2”键可选择形状,以便分别拾取形状1或形状2。我想按“1”键或“2”键选择形状,但它们无法运行`

int x = 0;
int y = 0;
int ex= 0;
int ey= 0;
 
void setup(){
  size (400, 400);  
}
 
void draw(){
  background(80);
  rect(x, y, 25,25);
  ellipse(50, 50, 50, 50);
}
 
void keyPresse() {
  if ( (key == '1')) {
    if (keyCode == UP) {
      y -= 10;
    } else if (keyCode == DOWN) {
      y += 10;
    } else if (keyCode == LEFT) {
      x -= 10;
    } else if (keyCode == RIGHT) {
      x += 10;
    }  
  } else if ((key == '2')){
      if (keyCode == UP) {
      ey -= 10;
    } else if (keyCode == DOWN) {
      ey += 10;
    } else if (keyCode == LEFT) {
      ex -= 10;
    } else if (keyCode == RIGHT) {
      ex += 10;
    } 
  }
}

有一个打字错误。键盘回调的名称为。然而,也存在一些逻辑问题


x
y
坐标装箱一个数组。和一个索引变量(
shape\u i
):

intx[]=newint[]{100100};
int y[]=新的int[]{200100};
int shape_i=0;
在其位置上绘制形状。(
x[0]
y[0]
)是矩形的位置,(
x[1]
y[1]
)是椭圆的位置:

void draw(){
背景(80);
rect(x[0],y[0],25,25);
椭圆(x[1],y[1],50,50);
}
按下1或2时更改索引(
shape_i
)。按箭头键时更改(
x[shape\u i]
y[shape\u i]
):

void键按下(){
如果(键=='1'){
形状_i=0;
}否则如果(键=='2'){
形状_i=1;
}else if(keyCode==UP){
y[shape_i]=10;
}else if(keyCode==向下){
y[shape_i]+=10;
}else if(keyCode==左){
x[shape_i]=10;
}else if(keyCode==右){
x[shape_i]+=10;
}
}

完整示例:

intx[]=newint[]{100100};
int y[]=新的int[]{200100};
int shape_i=0;
无效设置(){
尺寸(400400);
}
作废提款(){
背景(80);
rect(x[0],y[0],25,25);
椭圆(x[1],y[1],50,50);
}
按下void键(){
如果(键=='1'){
形状_i=0;
}否则如果(键=='2'){
形状_i=1;
}else if(keyCode==UP){
y[shape_i]=10;
}else if(keyCode==向下){
y[shape_i]+=10;
}else if(keyCode==左){
x[shape_i]=10;
}else if(keyCode==右){
x[shape_i]+=10;
}
}

嗨!你能在你的问题下面点击一下,更清楚地解释一下“但是他们不能跑”是什么意思吗?你到底是如何测试这段代码的,以及发生了什么-如果浏览器控制台中有错误消息,请将整个消息以文本形式粘贴到你的问题中;如果没有,请清楚地描述您想要发生什么,以及发生了什么。
keypress
是一个打字错误。您刚刚定义了一些随机函数,它不是一个处理事件的处理程序。很抱歉,我没有清楚地解释这个问题。很好地抓住了逻辑错误。我一看到拼写错误就投票决定结束这个问题,但我将收回我的投票+1令人担忧的是,我意识到我使用了错误的按键。非常感谢你帮我解决这个问题!