如何解决处理-通过按“1”键或“2”键来选择形状,以便分别拾取形状 1 或形状 2
在草图上绘制两个形状(例如矩形和圆形)。使用 UP、DOWN、LEFT 和 RIGHT 键控制所选形状的移动。通过按“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);
}
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;
}
}
}
解决方法
有一个错字。键盘回调的名称是 keyPressed
。但是,也存在一些逻辑问题。
为 x
和 y
坐标创建一个数组。还有一个索引变量 (shape_i
):
int x[] = new int[]{100,100};
int y[] = new int[]{200,100};
int shape_i = 0;
在其位置绘制形状。 (x[0]
,y[0]
) 是矩形的位置,(x[1]
,y[1]
) 是椭圆的位置:
void draw(){
background(80);
rect(x[0],y[0],25,25);
ellipse(x[1],y[1],50,50);
}
按下 1 或 2 时更改索引 (shape_i
)。按下箭头键时更改 (x[shape_i]
,y[shape_i]
):
void keyPressed() {
if (key == '1') {
shape_i = 0;
} else if (key == '2') {
shape_i = 1;
} else if (keyCode == UP) {
y[shape_i] -= 10;
} else if (keyCode == DOWN) {
y[shape_i] += 10;
} else if (keyCode == LEFT) {
x[shape_i] -= 10;
} else if (keyCode == RIGHT) {
x[shape_i] += 10;
}
}
完整示例:
int x[] = new int[]{100,100};
int shape_i = 0;
void setup(){
size (400,400);
}
void draw(){
background(80);
rect(x[0],50);
}
void keyPressed() {
if (key == '1') {
shape_i = 0;
} else if (key == '2') {
shape_i = 1;
} else if (keyCode == UP) {
y[shape_i] -= 10;
} else if (keyCode == DOWN) {
y[shape_i] += 10;
} else if (keyCode == LEFT) {
x[shape_i] -= 10;
} else if (keyCode == RIGHT) {
x[shape_i] += 10;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。