Letter, points and light. Stars demo, scroll demo, flare demo, bounce demo

Dependencies:   microbit

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Functions.h Source File

Functions.h

00001 void FunctionPointFlare()
00002 {
00003 
00004     int  value = 64 ;
00005     for(int xx=-1 ; xx<=1; xx++) {
00006         for( int yy=-1; yy<=1; yy++) {
00007             uBit.display.image.setPixelValue(oldx+yy,oldy+xx, 0);
00008         }
00009     }
00010 
00011 
00012     for(int xx=-1 ; xx<=1; xx++) {
00013         for( int yy=-1; yy<=1; yy++) {
00014             uBit.display.image.setPixelValue(i+yy,k+xx, 2);
00015             //    uBit.serial.printf("%d - %d", yy,xx);
00016         }
00017     }
00018     uBit.display.image.setPixelValue(i,k, value);
00019 
00020     oldx=i;
00021     oldy=k;
00022 
00023     i=(i+sign);
00024     if ((i<0) || (i>4)) {
00025         sign=-sign;
00026         i=(i+sign);
00027         k++;
00028         k=k%5;
00029     }
00030 
00031     //  uBit.serial.printf("\nAccleremoter ");
00032     // uBit.serial.printf("x:%d  y:%d", uBit.accelerometer.getX(),uBit.accelerometer.getY());
00033 
00034     uBit.sleep(100);
00035 }
00036 
00037 void FunctionPrintTest()
00038 {
00039     // uBit.display.scrollAsync("Scorda",500);
00040     uBit.display.scrollAsync("Scorda");
00041     uBit.sleep(500);
00042 }
00043 
00044 void FunctionImageTest()
00045 {
00046     if (ccont%3==0) {
00047         display.setBrightness(255);
00048         uBit.display.print(C);
00049     } else if (ccont%3==1) {
00050         display.setBrightness(127);
00051         uBit.display.print(Cb);
00052     } else if (ccont%3==2) {
00053         display.setBrightness(64) ;
00054         uBit.display.print(Cd);
00055     }
00056 
00057     uBit.sleep(500);
00058 
00059 }
00060 
00061 
00062 void FunctionBounceTest()
00063 {
00064     static int xx[]= {2,0,0};
00065     static int yy[]= {3,0,0};
00066     static int tempidx, idxvett=0;
00067     static int xost;
00068     static int yost;
00069     static int xcont=0;
00070     static int signx=1, signy=1;
00071     int value= 256;
00072     bool cambiay=false;
00073     int tempcolor;
00074 
00075     tempidx=idxvett;
00076     idxvett=(idxvett+1)%3;
00077     uBit.display.image.setPixelValue(xx[idxvett],yy[idxvett], 0);
00078     xx[idxvett]=(xx[tempidx]+signx)%5;
00079     yy[idxvett]=(yy[tempidx]+signy)%5;
00080 
00081     for(int i=0 ; i<=2; i++) {
00082         tempidx=(tempidx+i)%3;
00083         tempcolor=value/((i*32)+1);
00084         uBit.display.image.setPixelValue(xx[tempidx],yy[tempidx], tempcolor);
00085     }
00086     //se sbatte sul punto ostacolo o ha fatto due
00087     if (((xx[idxvett]==xost)&&(yy[idxvett]==yost))||(xcont==2)) {
00088         uBit.display.image.setPixelValue(xost,yost, 0);
00089         if ((xx[idxvett]==xost)&&(yy[idxvett]==yost))
00090             cambiay=true;
00091         xost=rand()%5;
00092         yost=rand()%5;
00093         uBit.display.image.setPixelValue(xost,yost, value/4);
00094         xcont=0;
00095     }
00096 
00097     if ((yy[idxvett]==0) || (yy[idxvett]==4) || (cambiay==true)) {
00098         signy=-signy;
00099     }
00100 
00101     if ((xx[idxvett]==0) || (xx[idxvett]==4))
00102         signx=-signx;
00103 
00104     if (xx[idxvett]==0)
00105         xcont++;
00106 
00107     uBit.sleep(250);
00108 
00109 }
00110 
00111 void FunctionStarTest()
00112 {
00113     // stars[x][0] x
00114     // stars[x][1] y
00115     // stars[x][2] speed
00116     // stars[x][3] light
00117     static int stars[5][4];
00118     static bool first=true;
00119     int tempspeed;
00120     //azzero primo giro
00121     if (first==true) {
00122         for(int i=0 ; i<5; i++) {
00123             stars[i][1]=-1;
00124         }
00125         first=false;
00126     }
00127 
00128     for(int i=0 ; i<5; i++) {
00129         if (stars[i][1]==-1) {
00130             stars[i][0]=i; //inutile ma ad uso futuro
00131             stars[i][1]=uBit.random(2);   //y
00132             stars[i][2]=uBit.random(2);   //speed
00133             stars[i][3]=((uBit.random(8)+1)*32)-1; //light
00134         } else {
00135             uBit.display.image.setPixelValue(stars[i][0],stars[i][1], 0);
00136             if (stars[i][2]==0) {
00137                 tempspeed=(ccont%2==0?1:0);
00138             } else {
00139                 tempspeed=stars[i][2];
00140             }
00141             stars[i][1]=stars[i][1]+tempspeed;
00142             if (stars[i][1]>4)
00143                 stars[i][1]=-1;
00144         }
00145         uBit.display.image.setPixelValue(stars[i][0],stars[i][1], stars[i][3]);
00146         //    uBit.serial.printf("\n%d: %d ",i,stars[i][1]);
00147     }
00148     uBit.sleep(250);
00149 }
00150 
00151 void FunctionImageScroll()
00152 {
00153     display.setBrightness(255);
00154     uBit.display.scrollAsync(W1,100);
00155     uBit.sleep(500);
00156 
00157 }
00158 
00159 
00160 void onButton(MicroBitEvent e)
00161 {
00162     static bool premuto=true;
00163     int numfun=6;
00164     if ((e.source == MICROBIT_ID_BUTTON_A) && (premuto==false)) {
00165         sceltavar--;
00166         uBit.display.clear();
00167         uBit.display.stopAnimation();
00168         uBit.serial.printf("\nBUTTON A: ");
00169         premuto=true;
00170     }
00171 
00172     if ((e.source == MICROBIT_ID_BUTTON_B)&& (premuto==false))  {
00173         sceltavar++;
00174         uBit.display.clear();
00175         uBit.display.stopAnimation();
00176         uBit.serial.printf("\nBUTTON B: ");
00177         premuto=true;
00178     }
00179     /*
00180         if (e.value == MICROBIT_BUTTON_EVT_CLICK) {
00181             uBit.serial.printf("\nCLICK");
00182             premuto=true;
00183         }
00184 
00185         if (e.value == MICROBIT_BUTTON_EVT_HOLD) {
00186             uBit.serial.printf("\nHOLD");
00187             premuto=true;
00188         }
00189         if (e.value == MICROBIT_BUTTON_EVT_DOWN) {
00190             uBit.serial.printf("\nDOWN");
00191             premuto=true;
00192         }
00193     */
00194     if (e.value == MICROBIT_BUTTON_EVT_UP) {
00195         uBit.serial.printf("UP");
00196         premuto=false;
00197     }
00198 
00199     sceltavar=(sceltavar+numfun)%numfun;
00200     // uBit.serial.printf("--%d--", sceltavar);
00201 
00202 }
00203