Processing 有条件更改圆大小将创建多个圆
当按下向上箭头键时,程序会增大圆的直径,而按下向下箭头键则会减小圆的直径。但是,当我按下向下键时,它会在原始圆上创建更小的圆,而不是缩小其大小 照片: 我怀疑向上键也在做同样的事情,但效果并不明显。如何使其改变现有圆的直径,而不是生成新圆Processing 有条件更改圆大小将创建多个圆,processing,Processing,当按下向上箭头键时,程序会增大圆的直径,而按下向下箭头键则会减小圆的直径。但是,当我按下向下键时,它会在原始圆上创建更小的圆,而不是缩小其大小 照片: 我怀疑向上键也在做同样的事情,但效果并不明显。如何使其改变现有圆的直径,而不是生成新圆 int X; void setup(){ size(400, 400); fill(#FFFF00); } void draw() { circle(200, 200, X + 30); if (keyPressed) { if
int X;
void setup(){
size(400, 400);
fill(#FFFF00);
}
void draw() {
circle(200, 200, X + 30);
if (keyPressed) {
if (key == CODED) {
if (keyCode == UP) {
if (X <= 300) {
X = X + 5;
}
}
if (keyCode == DOWN) {
if (X >= 30) {
X = X - 5;
}
}
}
}
}
intx;
无效设置(){
尺寸(400400);
填充(#FFFF00);
}
作废提款(){
圆圈(200,200,X+30);
如果(按键){
如果(键==编码){
if(keyCode==UP){
如果(X=30){
X=X-5;
}
}
}
}
}
尝试在draw()的顶部添加一个background()调用,以便上一个圆被透支
int X;
color BLUE = color(64,124,188);
void setup(){
size(400, 400);
fill(#FFFF00);
}
void draw() {
background(BLUE);
circle(200, 200, X + 30);
if (keyPressed) {
if (key == CODED) {
if (keyCode == UP) {
if (X <= 300) {
X = X + 5;
}
}
if (keyCode == DOWN) {
if (X >= 30) {
X = X - 5;
}
}
}
}
}
intx;
颜色蓝色=颜色(64124188);
无效设置(){
尺寸(400400);
填充(#FFFF00);
}
作废提款(){
背景(蓝色);
圆圈(200,200,X+30);
如果(按键){
如果(键==编码){
if(keyCode==UP){
如果(X=30){
X=X-5;
}
}
}
}
}
谢谢,成功了!我很好奇,你能解释一下为什么在画圈()之前放一个背景调用可以解决这个问题吗?我猜这是因为每帧都会执行一次,但是背景是先执行的,并且在前面的所有圆圈上不断地画出来?你的猜测是正确的。您可以在此处阅读有关background()的更多信息: