Letter, points and light. Stars demo, scroll demo, flare demo, bounce demo
Dependencies: microbit
MicroBit Graphics Demo
- FunctionPointFlare();
- FunctionBounceTest();
- FunctionImageTest();
- FunctionPrintTest();
- FunctionStarTest();
- FunctionImageScroll();
Functions.h
- Committer:
- MaxScorda
- Date:
- 2020-01-01
- Revision:
- 4:47230ba0a5f0
- Parent:
- 3:7fb07f1eeffe
File content as of revision 4:47230ba0a5f0:
void FunctionPointFlare() { int value = 64 ; for(int xx=-1 ; xx<=1; xx++) { for( int yy=-1; yy<=1; yy++) { uBit.display.image.setPixelValue(oldx+yy,oldy+xx, 0); } } for(int xx=-1 ; xx<=1; xx++) { for( int yy=-1; yy<=1; yy++) { uBit.display.image.setPixelValue(i+yy,k+xx, 2); // uBit.serial.printf("%d - %d", yy,xx); } } uBit.display.image.setPixelValue(i,k, value); oldx=i; oldy=k; i=(i+sign); if ((i<0) || (i>4)) { sign=-sign; i=(i+sign); k++; k=k%5; } // uBit.serial.printf("\nAccleremoter "); // uBit.serial.printf("x:%d y:%d", uBit.accelerometer.getX(),uBit.accelerometer.getY()); uBit.sleep(100); } void FunctionPrintTest() { // uBit.display.scrollAsync("Scorda",500); uBit.display.scrollAsync("Scorda"); uBit.sleep(500); } void FunctionImageTest() { if (ccont%3==0) { display.setBrightness(255); uBit.display.print(C); } else if (ccont%3==1) { display.setBrightness(127); uBit.display.print(Cb); } else if (ccont%3==2) { display.setBrightness(64) ; uBit.display.print(Cd); } uBit.sleep(500); } void FunctionBounceTest() { static int xx[]= {2,0,0}; static int yy[]= {3,0,0}; static int tempidx, idxvett=0; static int xost; static int yost; static int xcont=0; static int signx=1, signy=1; int value= 256; bool cambiay=false; int tempcolor; tempidx=idxvett; idxvett=(idxvett+1)%3; uBit.display.image.setPixelValue(xx[idxvett],yy[idxvett], 0); xx[idxvett]=(xx[tempidx]+signx)%5; yy[idxvett]=(yy[tempidx]+signy)%5; for(int i=0 ; i<=2; i++) { tempidx=(tempidx+i)%3; tempcolor=value/((i*32)+1); uBit.display.image.setPixelValue(xx[tempidx],yy[tempidx], tempcolor); } //se sbatte sul punto ostacolo o ha fatto due if (((xx[idxvett]==xost)&&(yy[idxvett]==yost))||(xcont==2)) { uBit.display.image.setPixelValue(xost,yost, 0); if ((xx[idxvett]==xost)&&(yy[idxvett]==yost)) cambiay=true; xost=rand()%5; yost=rand()%5; uBit.display.image.setPixelValue(xost,yost, value/4); xcont=0; } if ((yy[idxvett]==0) || (yy[idxvett]==4) || (cambiay==true)) { signy=-signy; } if ((xx[idxvett]==0) || (xx[idxvett]==4)) signx=-signx; if (xx[idxvett]==0) xcont++; uBit.sleep(250); } void FunctionStarTest() { // stars[x][0] x // stars[x][1] y // stars[x][2] speed // stars[x][3] light static int stars[5][4]; static bool first=true; int tempspeed; //azzero primo giro if (first==true) { for(int i=0 ; i<5; i++) { stars[i][1]=-1; } first=false; } for(int i=0 ; i<5; i++) { if (stars[i][1]==-1) { stars[i][0]=i; //inutile ma ad uso futuro stars[i][1]=uBit.random(2); //y stars[i][2]=uBit.random(2); //speed stars[i][3]=((uBit.random(8)+1)*32)-1; //light } else { uBit.display.image.setPixelValue(stars[i][0],stars[i][1], 0); if (stars[i][2]==0) { tempspeed=(ccont%2==0?1:0); } else { tempspeed=stars[i][2]; } stars[i][1]=stars[i][1]+tempspeed; if (stars[i][1]>4) stars[i][1]=-1; } uBit.display.image.setPixelValue(stars[i][0],stars[i][1], stars[i][3]); // uBit.serial.printf("\n%d: %d ",i,stars[i][1]); } uBit.sleep(250); } void FunctionImageScroll() { display.setBrightness(255); uBit.display.scrollAsync(W1,100); uBit.sleep(500); } void onButton(MicroBitEvent e) { static bool premuto=true; int numfun=6; if ((e.source == MICROBIT_ID_BUTTON_A) && (premuto==false)) { sceltavar--; uBit.display.clear(); uBit.display.stopAnimation(); uBit.serial.printf("\nBUTTON A: "); premuto=true; } if ((e.source == MICROBIT_ID_BUTTON_B)&& (premuto==false)) { sceltavar++; uBit.display.clear(); uBit.display.stopAnimation(); uBit.serial.printf("\nBUTTON B: "); premuto=true; } /* if (e.value == MICROBIT_BUTTON_EVT_CLICK) { uBit.serial.printf("\nCLICK"); premuto=true; } if (e.value == MICROBIT_BUTTON_EVT_HOLD) { uBit.serial.printf("\nHOLD"); premuto=true; } if (e.value == MICROBIT_BUTTON_EVT_DOWN) { uBit.serial.printf("\nDOWN"); premuto=true; } */ if (e.value == MICROBIT_BUTTON_EVT_UP) { uBit.serial.printf("UP"); premuto=false; } sceltavar=(sceltavar+numfun)%numfun; // uBit.serial.printf("--%d--", sceltavar); }