openframeworks の draw() 関数を使用して、x 秒で x の正方形 - ofRect (x、y、w、h) を描画するにはどうすればよいですか?
描画には fps が使用されているため、それが可能であることはわかっていますが、やりたいことを行うために操作する方法がわかりません。
ありがとうございました!
openframeworks の draw() 関数を使用して、x 秒で x の正方形 - ofRect (x、y、w、h) を描画するにはどうすればよいですか?
描画には fps が使用されているため、それが可能であることはわかっていますが、やりたいことを行うために操作する方法がわかりません。
ありがとうございました!
1 つのオプションは、 ofGetElapsedTimeMillis()を使用してフレーム数ではなく、時間に基づいて補間することです。
もう 1 つは、トゥイーン/アニメーション アドオンを使用することです。アニメーション セクションのofxAddonsでかなりの数を見つけることができます
最も簡単な方法でそれを行うことができます:
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);
}