绘制函数定时器openframeworks

Draw function timer openframeworks

本文关键字:openframeworks 定时器 函数 绘制      更新时间:2023-10-16

如何使用openframeworks的draw()函数,在x秒内为x绘制正方形- ofRect (x, y, w, h) ?

我知道这是可能的,因为绘制使用fps,但我不知道如何操作,以便做我想做的。

谢谢!

一个选项是使用ofGetElapsedTimeMillis()基于时间而不是帧数进行插值

另一种方法是使用补间/动画插件。您可以在动画部分
中找到相当多的xaddons。

你可以用最简单的方法做到这一点:

int x = ofGetElapsedTimeMillis();
int y = 10;
int w = 100;
int h = 100;
ofDrawRectangle(x, y, w, h);

注意,在OpenFrameworks中你应该使用ofDrawRectangle,它与ofRectangle不同。

如果你想达到更高级的动画,我建议你使用xtweenzor插件,在那里你可以像这样在一段时间内操纵变量:

. h文件:

#include "ofMain.h"
#include "ofxTweenzor.h"
class ofApp : public ofBaseApp{
public:
    void setup();
    void update();
    void draw();
    float x1;
};

. cpp文件:

#include "testApp.h"
void ofApp::setup() {
    Tweenzor::init();
    float initialX = 0.f;
    float finalX = 900.f;
    float delay = 0.0f;
    float durationInSeconds = 1.f;
    Tweenzor::add(&x, initialX, finalX, delay, durationInSeconds );
}
void ofApp::update(){
    Tweenzor::update( ofGetElapsedTimeMillis() );
}
void ofApp::draw() {
    int y = 10;
    int w = 100;
    int h = 100;
    ofDrawRectangle(x, y, w, h);
}