Letter, points and light. Stars demo, scroll demo, flare demo, bounce demo
Dependencies: microbit
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
Generated on Thu Jul 14 2022 13:00:56 by 1.7.2