Oop 从Cinder中的另一个类绘制到画布
是否有一种方法可以使用libcinder绘制,而不必将所有代码放在main类的draw()方法上。我正在开发一个大的应用程序,把所有东西都塞进一个文件是不方便的 这是该想法的一个例子:Oop 从Cinder中的另一个类绘制到画布,oop,opengl,cinder,Oop,Opengl,Cinder,是否有一种方法可以使用libcinder绘制,而不必将所有代码放在main类的draw()方法上。我正在开发一个大的应用程序,把所有东西都塞进一个文件是不方便的 这是该想法的一个例子: class MyApp : public AppBasic { public: void setup (); void update (); void draw (); private: vector<MyObject> myObjects; }; MyApp
class MyApp : public AppBasic {
public:
void setup ();
void update ();
void draw ();
private:
vector<MyObject> myObjects;
};
MyApp::draw () {
for (int i = 0; i < myObjects.size(); ++i) {
myObjects[i].render ();
}
}
CINDER_APP_BASIC (MyApp, RendererGL)
/* ------------------ */
class MyObject {
public:
void render ();
};
void MyObject::render () {
Rectf rect (0, 0, 20, 20);
gl::drawSolidRoundedRect(rect, 15.0);
}
MyApp类:公共AppBasic{
公众:
无效设置();
无效更新();
无效提款();
私人:
向量肌对象;
};
MyApp::draw(){
对于(int i=0;ivoid setup()
、void update()
和void draw()
。然后,您可以在主应用程序中创建此类的实例,将它们存储在成员变量或std::vector
中。然后分别从主应用程序的设置
、更新
和绘制
方法中调用这些方法更新
和绘制
事件。请参阅ListenerBasic示例:。有关所有可用事件的列表,请参阅:draw()
方法,可以将对象放在其他对象的顶部,可以检测光标下的对象,等等。众所周知的场景图是,但它与Cinder不兼容。在我的一个示例中可以找到一个非常基本的场景图: