Processing 显示动画时按按钮更改对象

Processing 显示动画时按按钮更改对象,processing,Processing,我正在尝试在代码中添加动画。到目前为止,我拥有的是一个可以通过按下按钮来改变的对象。所以每次你按下按钮,对象都会改变(它是一棵树,我正在改变它的分支)。有没有可能添加一些像雪花这样的动画?问题是我必须把它放在draw方法中,这样它就会被自动调用,让我们认为它是动画。因此,我还必须始终添加背景/按钮和所有内容。但是我不能对我的主要对象(树)这样做,因为我只想在你按下按钮时更改它 有什么解决办法吗 提前感谢在刷新其他对象的同时保留某些对象,您可以: 仅刷新部分屏幕。比如,画一个形状(rect或其他任

我正在尝试在代码中添加动画。到目前为止,我拥有的是一个可以通过按下按钮来改变的对象。所以每次你按下按钮,对象都会改变(它是一棵树,我正在改变它的分支)。有没有可能添加一些像雪花这样的动画?问题是我必须把它放在draw方法中,这样它就会被自动调用,让我们认为它是动画。因此,我还必须始终添加背景/按钮和所有内容。但是我不能对我的主要对象(树)这样做,因为我只想在你按下按钮时更改它

有什么解决办法吗


提前感谢

在刷新其他对象的同时保留某些对象,您可以:

  • 仅刷新部分屏幕。比如,画一个形状(rect或其他任何形状),背景颜色只擦除屏幕的一部分

  • 有条件地绘制选定对象。使用标志选择绘制所需内容,每次绘制,并使用
    background()
    在每个绘制周期清除整个屏幕

  • 使用图层。删除一个图层,而不是需要的其他图层,在绘图中显示所有图层。这通常是通过对象来完成的。搜索处理+图层以查看示例。在这里和/或在里面

  • 编辑: 以下是每种方法的一些简单示例:

    一,

    /**
    *这是一个非常简单的示例,可以删除屏幕的一部分以
    *选择性持久绘制
    **/
    无效设置(){
    尺寸(400400);
    背景(0);
    仰泳();
    }
    作废提款(){
    填充(0);
    矩形(0,0,宽度/2,高度);
    填充(120);
    椭圆(宽度/4,帧数%宽度,100100);
    }
    void mouseMoved(){
    填充(255);
    椭圆(mouseX,mouseY,10,10);
    }
    
    二,

    /**
    *一个非常简单的有条件地绘制stuf的示例
    *坚持
    **/
    ArrayList points=新的ArrayList();
    布尔showBalls=true;//有图格尔的钥匙吗
    无效设置(){
    尺寸(400400);
    背景(0);
    仰泳();
    }
    作废提款(){
    背景(0);
    填充(30);
    rect(帧数百分比宽度,100200200);
    填充(120);
    椭圆(宽度/2,帧数%宽度,150,150);
    填充(255);
    if(showBalls){
    对于(PVector p:点){
    椭圆(p.x,p.y,10,10);
    }
    }
    如果(points.size()>500){
    点。清除();
    }
    }
    void mouseMoved(){
    椭圆(mouseX,mouseY,10,10);
    添加(新的PVector(mouseX,mouseY));
    }
    按下void键(){
    showBalls=!showBalls;
    }
    
    三,

    /**
    *使用PGraphics作为图层的一个非常简单的示例
    *坚持
    **/
    图形层;
    无效设置(){
    尺寸(400400);
    图层=createGraphics(宽度、高度);
    layer.beginDraw();
    分层填充(255);
    layer.endDraw();
    背景(0);
    仰泳();
    }
    作废提款(){
    背景(0);
    填充(30);
    rect(帧数百分比宽度,100200200);
    填充(120);
    椭圆(宽度/2,帧数%宽度,150,150);
    图像(层,0,0);
    }
    void mouseMoved(){
    layer.beginDraw();
    椭圆层(mouseX,mouseY,10,10);
    layer.endDraw();
    }
    
    我已经对动画进行了编码。但正如我所说,我是在draw方法中完成的(该方法一直自动执行)。通过这种方式,我一次又一次地创建新的背景/按钮和所有元素(因此树隐藏在它们后面),您可以编辑您的问题,或者如果需要,可以删除它。只要试着问一些具体的问题,比如“如何使用Win32/C++绘制椭圆?”,好的问题就在这些方面。请发布一些代码,并添加一些具体的问题。我很乐意帮助你。