Exemplo n.º 1
0
//--------------------------------------------------------------
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);
		}
	}
}