2013-05-22 19 views
1

如何使用openframeworks的draw()函数在x秒内为x绘制一个square - ofRect(x,y,w,h)?绘图函数定时器openframeworks

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

谢谢!

回答

2

一种选择是基于时间内插,不使用ofGetElapsedTimeMillis()

另一种是使用补间/动画附加帧计数。你可以找到相当的ofxAddons一些动画节

0

你可以做的是,在最简单的方法:

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

注意,在你了openFrameworks应从ofRectangle使用ofDrawRectangle,it is different

如果你想达到更adivanced动画,我会建议你使用ofxTweenzor addon,在那里你可以在一段时间内是这样操作的变量:

.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); 
}