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

Dependencies:   microbit

MicroBit Graphics Demo

  • FunctionPointFlare();
  • FunctionBounceTest();
  • FunctionImageTest();
  • FunctionPrintTest();
  • FunctionStarTest();
  • FunctionImageScroll();
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?

UserRevisionLine numberNew 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