void bGroup::drawForeground(){ //******** if a block is currently being held, draw it on different layers, depending on Circumstances //-------- draw all the shadows for (unsigned int i=0; i<blocks.size(); i++) { if (blocks[i].bGrabbed) { blocks[i].drawShadow(); } } //-------- draw all the grabbed blocks for (unsigned int i=0; i<blocks.size(); i++) { if (blocks[i].bGrabbed) { blocks[i].draw(); } } //-------- draw ungrabbed statement blocks for (unsigned int i=0; i<blocks.size(); i++) { if (blocks[i].type==BLK_VAL&&!blocks[i].bGrabbed) { blocks[i].draw(); } } //-------- draw grabbed statement blocks for (unsigned int i=0; i<blocks.size(); i++) { if (blocks[i].type==BLK_VAL&&blocks[i].bGrabbed) { blocks[i].draw(); } } //-------- Not deprecated, displays blocks when dd clicked. for (unsigned int i=0; i<blocks.size(); i++) { if (blocks[i].ddOpen) { blocks[i].draw(); } } if(held.bGrabbed){ held.drawShadow(); held.draw(); } if(inHand&&held.bGrabbed){ bool drawnInd=0; drawnInd=drawIndicators(held, base); for (unsigned int i=0; i<size()&&!drawnInd; i++) { drawnInd=drawIndicators(held,blocks[i]); } } }
void SSD1306::nextFrameTick() { myFrameTick++; if (myFrameTick == myFrameWaitTicks && myFrameState == 0 || myFrameTick == myFrameTransitionTicks && myFrameState == 1) { myFrameState = (myFrameState + 1) % 2; if (myFrameState == FRAME_STATE_FIX) { myCurrentFrame = (myCurrentFrame + 1) % myFrameCount; } myFrameTick = 0; } drawIndicators(myFrameCount, myCurrentFrame); switch (myFrameState) { case 0: (*myFrameCallbacks[myCurrentFrame])(0, 0); break; case 1: (*myFrameCallbacks[myCurrentFrame])(-128 * myFrameTick / myFrameTransitionTicks, 0); (*myFrameCallbacks[(myCurrentFrame + 1) % myFrameCount])(-128 * myFrameTick / myFrameTransitionTicks + 128, 0); break; } }