1

openframeworks の draw() 関数を使用して、x 秒で x の正方形 - ofRect (x、y、w、h) を描画するにはどうすればよいですか?

描画には fps が使用されているため、それが可能であることはわかっていますが、やりたいことを行うために操作する方法がわかりません。

ありがとうございました!

4

2 に答える 2

2

1 つのオプションは、 ofGetElapsedTimeMillis()を使用してフレーム数ではなく、時間に基づいて補間することです。

もう 1 つは、トゥイーン/アニメーション アドオンを使用することです。アニメーション セクションのofxAddonsでかなりの数を見つけることができます

于 2013-05-22T10:05:09.633 に答える
2

最も簡単な方法でそれを行うことができます:

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

OpenFrameworks では ofDrawRectangle を使用する必要があることに注意してください。これは ofRectangleとは異なります。

より高度なアニメーションに到達したい場合は、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);
}
于 2017-09-14T14:08:49.017 に答える