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@3:7fb07f1eeffe, 2019-06-03 (annotated)
- Committer:
- MaxScorda
- Date:
- Mon Jun 03 23:07:04 2019 +0000
- Revision:
- 3:7fb07f1eeffe
- Parent:
- 2:b767fa1c9241
- Child:
- 4:47230ba0a5f0
Stars test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MaxScorda | 1:ed77b498d5c8 | 1 | void FunctionPointFlare() |
MaxScorda | 1:ed77b498d5c8 | 2 | { |
MaxScorda | 1:ed77b498d5c8 | 3 | |
MaxScorda | 1:ed77b498d5c8 | 4 | int value = 64 ; |
MaxScorda | 1:ed77b498d5c8 | 5 | for(int xx=-1 ; xx<=1; xx++) { |
MaxScorda | 1:ed77b498d5c8 | 6 | for( int yy=-1; yy<=1; yy++) { |
MaxScorda | 1:ed77b498d5c8 | 7 | uBit.display.image.setPixelValue(oldx+yy,oldy+xx, 0); |
MaxScorda | 1:ed77b498d5c8 | 8 | } |
MaxScorda | 1:ed77b498d5c8 | 9 | } |
MaxScorda | 1:ed77b498d5c8 | 10 | |
MaxScorda | 1:ed77b498d5c8 | 11 | |
MaxScorda | 1:ed77b498d5c8 | 12 | for(int xx=-1 ; xx<=1; xx++) { |
MaxScorda | 1:ed77b498d5c8 | 13 | for( int yy=-1; yy<=1; yy++) { |
MaxScorda | 1:ed77b498d5c8 | 14 | uBit.display.image.setPixelValue(i+yy,k+xx, 2); |
MaxScorda | 1:ed77b498d5c8 | 15 | // uBit.serial.printf("%d - %d", yy,xx); |
MaxScorda | 1:ed77b498d5c8 | 16 | } |
MaxScorda | 1:ed77b498d5c8 | 17 | } |
MaxScorda | 1:ed77b498d5c8 | 18 | uBit.display.image.setPixelValue(i,k, value); |
MaxScorda | 1:ed77b498d5c8 | 19 | |
MaxScorda | 1:ed77b498d5c8 | 20 | oldx=i; |
MaxScorda | 1:ed77b498d5c8 | 21 | oldy=k; |
MaxScorda | 1:ed77b498d5c8 | 22 | |
MaxScorda | 1:ed77b498d5c8 | 23 | i=(i+sign); |
MaxScorda | 1:ed77b498d5c8 | 24 | if ((i<0) || (i>4)) { |
MaxScorda | 1:ed77b498d5c8 | 25 | sign=-sign; |
MaxScorda | 1:ed77b498d5c8 | 26 | i=(i+sign); |
MaxScorda | 1:ed77b498d5c8 | 27 | k++; |
MaxScorda | 1:ed77b498d5c8 | 28 | k=k%5; |
MaxScorda | 1:ed77b498d5c8 | 29 | } |
MaxScorda | 1:ed77b498d5c8 | 30 | |
MaxScorda | 1:ed77b498d5c8 | 31 | // uBit.serial.printf("\nAccleremoter "); |
MaxScorda | 1:ed77b498d5c8 | 32 | // uBit.serial.printf("x:%d y:%d", uBit.accelerometer.getX(),uBit.accelerometer.getY()); |
MaxScorda | 1:ed77b498d5c8 | 33 | |
MaxScorda | 1:ed77b498d5c8 | 34 | uBit.sleep(100); |
MaxScorda | 1:ed77b498d5c8 | 35 | } |
MaxScorda | 1:ed77b498d5c8 | 36 | |
MaxScorda | 1:ed77b498d5c8 | 37 | void FunctionPrintTest() |
MaxScorda | 1:ed77b498d5c8 | 38 | { |
MaxScorda | 1:ed77b498d5c8 | 39 | // uBit.display.scrollAsync("Scorda",500); |
MaxScorda | 2:b767fa1c9241 | 40 | uBit.display.scrollAsync("Scorda"); |
MaxScorda | 2:b767fa1c9241 | 41 | uBit.sleep(500); |
MaxScorda | 1:ed77b498d5c8 | 42 | } |
MaxScorda | 1:ed77b498d5c8 | 43 | |
MaxScorda | 1:ed77b498d5c8 | 44 | void FunctionImageTest() |
MaxScorda | 1:ed77b498d5c8 | 45 | { |
MaxScorda | 1:ed77b498d5c8 | 46 | if (ccont%3==0) |
MaxScorda | 1:ed77b498d5c8 | 47 | uBit.display.print(C); |
MaxScorda | 1:ed77b498d5c8 | 48 | else if (ccont%3==1) |
MaxScorda | 1:ed77b498d5c8 | 49 | uBit.display.print(Cb); |
MaxScorda | 1:ed77b498d5c8 | 50 | else if (ccont%3==2) |
MaxScorda | 1:ed77b498d5c8 | 51 | uBit.display.print(Cd); |
MaxScorda | 1:ed77b498d5c8 | 52 | |
MaxScorda | 1:ed77b498d5c8 | 53 | uBit.sleep(500); |
MaxScorda | 1:ed77b498d5c8 | 54 | |
MaxScorda | 1:ed77b498d5c8 | 55 | } |
MaxScorda | 1:ed77b498d5c8 | 56 | |
MaxScorda | 1:ed77b498d5c8 | 57 | |
MaxScorda | 1:ed77b498d5c8 | 58 | void FunctionBounceTest() |
MaxScorda | 1:ed77b498d5c8 | 59 | { |
MaxScorda | 1:ed77b498d5c8 | 60 | static int xx[]= {2,0,0}; |
MaxScorda | 1:ed77b498d5c8 | 61 | static int yy[]= {3,0,0}; |
MaxScorda | 1:ed77b498d5c8 | 62 | static int tempidx, idxvett=0; |
MaxScorda | 1:ed77b498d5c8 | 63 | static int xost; |
MaxScorda | 1:ed77b498d5c8 | 64 | static int yost; |
MaxScorda | 1:ed77b498d5c8 | 65 | static int xcont=0; |
MaxScorda | 1:ed77b498d5c8 | 66 | static int signx=1, signy=1; |
MaxScorda | 1:ed77b498d5c8 | 67 | int value= 128; |
MaxScorda | 1:ed77b498d5c8 | 68 | bool cambiay=false; |
MaxScorda | 1:ed77b498d5c8 | 69 | int tempcolor; |
MaxScorda | 1:ed77b498d5c8 | 70 | |
MaxScorda | 1:ed77b498d5c8 | 71 | tempidx=idxvett; |
MaxScorda | 1:ed77b498d5c8 | 72 | idxvett=(idxvett+1)%3; |
MaxScorda | 1:ed77b498d5c8 | 73 | uBit.display.image.setPixelValue(xx[idxvett],yy[idxvett], 0); |
MaxScorda | 1:ed77b498d5c8 | 74 | xx[idxvett]=(xx[tempidx]+signx)%5; |
MaxScorda | 1:ed77b498d5c8 | 75 | yy[idxvett]=(yy[tempidx]+signy)%5; |
MaxScorda | 1:ed77b498d5c8 | 76 | |
MaxScorda | 1:ed77b498d5c8 | 77 | for(int i=0 ; i<=2; i++) { |
MaxScorda | 1:ed77b498d5c8 | 78 | tempidx=(tempidx+i)%3; |
MaxScorda | 1:ed77b498d5c8 | 79 | tempcolor=value/((i+1)*4); |
MaxScorda | 1:ed77b498d5c8 | 80 | uBit.display.image.setPixelValue(xx[tempidx],yy[tempidx], tempcolor); |
MaxScorda | 1:ed77b498d5c8 | 81 | } |
MaxScorda | 3:7fb07f1eeffe | 82 | //se sbatte sul punto ostacolo o ha fatto due |
MaxScorda | 1:ed77b498d5c8 | 83 | if (((xx[idxvett]==xost)&&(yy[idxvett]==yost))||(xcont==2)) { |
MaxScorda | 1:ed77b498d5c8 | 84 | uBit.display.image.setPixelValue(xost,yost, 0); |
MaxScorda | 1:ed77b498d5c8 | 85 | if ((xx[idxvett]==xost)&&(yy[idxvett]==yost)) |
MaxScorda | 1:ed77b498d5c8 | 86 | cambiay=true; |
MaxScorda | 1:ed77b498d5c8 | 87 | xost=rand()%5; |
MaxScorda | 1:ed77b498d5c8 | 88 | yost=rand()%5; |
MaxScorda | 1:ed77b498d5c8 | 89 | uBit.display.image.setPixelValue(xost,yost, value/4); |
MaxScorda | 1:ed77b498d5c8 | 90 | xcont=0; |
MaxScorda | 1:ed77b498d5c8 | 91 | } |
MaxScorda | 1:ed77b498d5c8 | 92 | |
MaxScorda | 1:ed77b498d5c8 | 93 | if ((yy[idxvett]==0) || (yy[idxvett]==4) || (cambiay==true)) { |
MaxScorda | 1:ed77b498d5c8 | 94 | signy=-signy; |
MaxScorda | 1:ed77b498d5c8 | 95 | } |
MaxScorda | 1:ed77b498d5c8 | 96 | |
MaxScorda | 1:ed77b498d5c8 | 97 | if ((xx[idxvett]==0) || (xx[idxvett]==4)) |
MaxScorda | 1:ed77b498d5c8 | 98 | signx=-signx; |
MaxScorda | 1:ed77b498d5c8 | 99 | |
MaxScorda | 1:ed77b498d5c8 | 100 | if (xx[idxvett]==0) |
MaxScorda | 1:ed77b498d5c8 | 101 | xcont++; |
MaxScorda | 1:ed77b498d5c8 | 102 | |
MaxScorda | 3:7fb07f1eeffe | 103 | uBit.sleep(250); |
MaxScorda | 3:7fb07f1eeffe | 104 | |
MaxScorda | 3:7fb07f1eeffe | 105 | } |
MaxScorda | 3:7fb07f1eeffe | 106 | |
MaxScorda | 3:7fb07f1eeffe | 107 | void FunctionStarTest() |
MaxScorda | 3:7fb07f1eeffe | 108 | { |
MaxScorda | 3:7fb07f1eeffe | 109 | // stars[x][0] x |
MaxScorda | 3:7fb07f1eeffe | 110 | // stars[x][1] y |
MaxScorda | 3:7fb07f1eeffe | 111 | // stars[x][2] speed |
MaxScorda | 3:7fb07f1eeffe | 112 | // stars[x][3] light |
MaxScorda | 3:7fb07f1eeffe | 113 | static int stars[5][4]; |
MaxScorda | 3:7fb07f1eeffe | 114 | static bool first=true; |
MaxScorda | 3:7fb07f1eeffe | 115 | int tempspeed; |
MaxScorda | 3:7fb07f1eeffe | 116 | //azzero primo giro |
MaxScorda | 3:7fb07f1eeffe | 117 | if (first==true) { |
MaxScorda | 3:7fb07f1eeffe | 118 | for(int i=0 ; i<5; i++) { |
MaxScorda | 3:7fb07f1eeffe | 119 | stars[i][1]=-1; |
MaxScorda | 3:7fb07f1eeffe | 120 | } |
MaxScorda | 3:7fb07f1eeffe | 121 | first=false; |
MaxScorda | 3:7fb07f1eeffe | 122 | } |
MaxScorda | 3:7fb07f1eeffe | 123 | |
MaxScorda | 3:7fb07f1eeffe | 124 | for(int i=0 ; i<5; i++) { |
MaxScorda | 3:7fb07f1eeffe | 125 | if (stars[i][1]==-1) { |
MaxScorda | 3:7fb07f1eeffe | 126 | stars[i][0]=i; //inutile ma ad uso futuro |
MaxScorda | 3:7fb07f1eeffe | 127 | stars[i][1]=uBit.random(2); //y |
MaxScorda | 3:7fb07f1eeffe | 128 | stars[i][2]=uBit.random(2); //speed |
MaxScorda | 3:7fb07f1eeffe | 129 | stars[i][3]=((uBit.random(8)+1)*32)-1; //light |
MaxScorda | 3:7fb07f1eeffe | 130 | } else { |
MaxScorda | 3:7fb07f1eeffe | 131 | uBit.display.image.setPixelValue(stars[i][0],stars[i][1], 0); |
MaxScorda | 3:7fb07f1eeffe | 132 | if (stars[i][2]==0) { |
MaxScorda | 3:7fb07f1eeffe | 133 | tempspeed=(ccont%2==0?1:0); |
MaxScorda | 3:7fb07f1eeffe | 134 | } else { |
MaxScorda | 3:7fb07f1eeffe | 135 | tempspeed=stars[i][2]; |
MaxScorda | 3:7fb07f1eeffe | 136 | } |
MaxScorda | 3:7fb07f1eeffe | 137 | stars[i][1]=stars[i][1]+tempspeed; |
MaxScorda | 3:7fb07f1eeffe | 138 | if (stars[i][1]>4) |
MaxScorda | 3:7fb07f1eeffe | 139 | stars[i][1]=-1; |
MaxScorda | 3:7fb07f1eeffe | 140 | } |
MaxScorda | 3:7fb07f1eeffe | 141 | uBit.display.image.setPixelValue(stars[i][0],stars[i][1], stars[i][3]); |
MaxScorda | 3:7fb07f1eeffe | 142 | uBit.serial.printf("\n%d: %d ",i,stars[i][1]); |
MaxScorda | 3:7fb07f1eeffe | 143 | } |
MaxScorda | 1:ed77b498d5c8 | 144 | |
MaxScorda | 1:ed77b498d5c8 | 145 | uBit.sleep(250); |
MaxScorda | 1:ed77b498d5c8 | 146 | |
MaxScorda | 1:ed77b498d5c8 | 147 | } |
MaxScorda | 1:ed77b498d5c8 | 148 | |
MaxScorda | 1:ed77b498d5c8 | 149 | void onButton(MicroBitEvent e) |
MaxScorda | 1:ed77b498d5c8 | 150 | { |
MaxScorda | 1:ed77b498d5c8 | 151 | static bool premuto=false; |
MaxScorda | 3:7fb07f1eeffe | 152 | int numfun=5; |
MaxScorda | 1:ed77b498d5c8 | 153 | if ((e.source == MICROBIT_ID_BUTTON_A) && (premuto==false)) { |
MaxScorda | 1:ed77b498d5c8 | 154 | sceltavar--; |
MaxScorda | 1:ed77b498d5c8 | 155 | uBit.display.clear(); |
MaxScorda | 2:b767fa1c9241 | 156 | uBit.display.stopAnimation(); |
MaxScorda | 1:ed77b498d5c8 | 157 | uBit.serial.printf("\nBUTTON A: "); |
MaxScorda | 2:b767fa1c9241 | 158 | premuto=true; |
MaxScorda | 1:ed77b498d5c8 | 159 | } |
MaxScorda | 1:ed77b498d5c8 | 160 | |
MaxScorda | 1:ed77b498d5c8 | 161 | if ((e.source == MICROBIT_ID_BUTTON_B)&& (premuto==false)) { |
MaxScorda | 1:ed77b498d5c8 | 162 | sceltavar++; |
MaxScorda | 1:ed77b498d5c8 | 163 | uBit.display.clear(); |
MaxScorda | 3:7fb07f1eeffe | 164 | uBit.display.stopAnimation(); |
MaxScorda | 1:ed77b498d5c8 | 165 | uBit.serial.printf("\nBUTTON B: "); |
MaxScorda | 1:ed77b498d5c8 | 166 | premuto=true; |
MaxScorda | 1:ed77b498d5c8 | 167 | } |
MaxScorda | 2:b767fa1c9241 | 168 | /* |
MaxScorda | 2:b767fa1c9241 | 169 | if (e.value == MICROBIT_BUTTON_EVT_CLICK) { |
MaxScorda | 2:b767fa1c9241 | 170 | uBit.serial.printf("\nCLICK"); |
MaxScorda | 2:b767fa1c9241 | 171 | premuto=true; |
MaxScorda | 2:b767fa1c9241 | 172 | } |
MaxScorda | 1:ed77b498d5c8 | 173 | |
MaxScorda | 2:b767fa1c9241 | 174 | if (e.value == MICROBIT_BUTTON_EVT_HOLD) { |
MaxScorda | 2:b767fa1c9241 | 175 | uBit.serial.printf("\nHOLD"); |
MaxScorda | 2:b767fa1c9241 | 176 | premuto=true; |
MaxScorda | 2:b767fa1c9241 | 177 | } |
MaxScorda | 2:b767fa1c9241 | 178 | if (e.value == MICROBIT_BUTTON_EVT_DOWN) { |
MaxScorda | 2:b767fa1c9241 | 179 | uBit.serial.printf("\nDOWN"); |
MaxScorda | 2:b767fa1c9241 | 180 | premuto=true; |
MaxScorda | 2:b767fa1c9241 | 181 | } |
MaxScorda | 2:b767fa1c9241 | 182 | */ |
MaxScorda | 1:ed77b498d5c8 | 183 | if (e.value == MICROBIT_BUTTON_EVT_UP) { |
MaxScorda | 1:ed77b498d5c8 | 184 | uBit.serial.printf("UP"); |
MaxScorda | 1:ed77b498d5c8 | 185 | premuto=false; |
MaxScorda | 1:ed77b498d5c8 | 186 | } |
MaxScorda | 1:ed77b498d5c8 | 187 | |
MaxScorda | 1:ed77b498d5c8 | 188 | sceltavar=(sceltavar+numfun)%numfun; |
MaxScorda | 2:b767fa1c9241 | 189 | // uBit.serial.printf("--%d--", sceltavar); |
MaxScorda | 1:ed77b498d5c8 | 190 | |
MaxScorda | 1:ed77b498d5c8 | 191 | } |
MaxScorda | 1:ed77b498d5c8 | 192 |