//-------------------------------------------------------------- void Sprite::draw() { if(frames.empty()) { return; } // animate frames? if(bAnimate) { // go to next frame if time has elapsed if(ofGetElapsedTimeMillis() - timestamp > frames.at(currentFrame)->getFrameTime()) { if(bForward) { nextFrame(); } else { prevFrame(); } timestamp = ofGetElapsedTimeMillis(); } } // draw frame(s)? if(bVisible) { if(bDrawAllLayers) { for(unsigned int i = 0; i < frames.size(); ++i) { DrawableFrame* f = frames.at(i); f->draw(pos.x, pos.y); } } else if(currentFrame >= 0 && currentFrame < (int) frames.size()) { DrawableFrame* f = frames.at(currentFrame); f->draw(pos.x, pos.y); } } }