Настройка метода Lib Cinder {} в CINDER_APP_BASIC

Когда моя программа запускается, она должна отображать круг на фоне. Также я должен контролировать все отображаемые круги. я использую class VertexController а также class Vertex для этой цели. В Vertex у меня есть конструктор:

Vertex::Vertex(const ci::Vec2f & CurrentLoc){

vColor = Color(Rand::randFloat(123.0f),Rand::randFloat(123.0f),Rand::randFloat(123.0f));
vRadius = Rand::randFloat(23.0f);
vLoc = CurrentLoc;
}

И в VertexController я имею

VertexController::VertexController()
{
Vertex CenterVertex = Vertex(getWindowCenter());
CenterVertex.draw();  // function-member draw solid circle with random color
}

И в setup{} метод, который я написал

void TutorialApp::setup(){
gl::clear(Color(255,204,0));
mVertexController=VertexController();
}

Безусловно, мой путь не сработал. Я вижу только фон.
Так что главный вопрос — в CINDER_APP_BASIC рисование возможно только в draw {}, update {}, setup {} напрямую? Если да, посоветуйте решение, еще скажите, где моя ошибка.

0

Решение

эта строка кода не имеет никакого смысла для меня:

mVertexController=VertexController();

В любом случае, вы должны использовать функцию draw () только для рисования кругов в окне. Это то, почему по умолчанию есть gl::clear(Color(0,0,0)); очистить фон и начать рисовать новый кадр с нуля (так работает рисование в OpenGL, используемое по умолчанию в Cinder).

Я предлагаю использовать Вектор контейнер для хранения всех кругов (таким образом, вы можете добавлять и удалять круги на лету с некоторым усилием), добавьте первый в VertexController конструктор, и сделать отдельную функцию VertexController::draw() нарисовать все круги, используя для цикла.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector