Image library for all the graph. Just test
Image.cpp@6:100377ba0900, 2019-05-09 (annotated)
- Committer:
- MYY
- Date:
- Thu May 09 02:25:24 2019 +0000
- Revision:
- 6:100377ba0900
- Parent:
- 3:d31341240f10
change function name. Make draw-map function private, Add private function draw UI.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MYY | 0:da6e8a366665 | 1 | #include "Image.h" |
MYY | 0:da6e8a366665 | 2 | |
MYY | 6:100377ba0900 | 3 | /* |
MYY | 6:100377ba0900 | 4 | The idea behind Image: |
MYY | 0:da6e8a366665 | 5 | |
MYY | 6:100377ba0900 | 6 | level_1_x, level_1_y : Coordinates for gold/rock in level 1/level 2/level 3. Random coordinates will mess up with the difficulty of game. |
MYY | 6:100377ba0900 | 7 | level_2_x, level_2_y |
MYY | 6:100377ba0900 | 8 | level_3_x, level_3_y |
MYY | 6:100377ba0900 | 9 | |
MYY | 6:100377ba0900 | 10 | They are global variables stored in "Global_my" |
MYY | 6:100377ba0900 | 11 | |
MYY | 6:100377ba0900 | 12 | */ |
MYY | 6:100377ba0900 | 13 | |
MYY | 6:100377ba0900 | 14 | |
MYY | 6:100377ba0900 | 15 | // this a private function used to draw map for level 1 |
MYY | 6:100377ba0900 | 16 | void Image::draw_map_1(N5110 &lcd) |
MYY | 6:100377ba0900 | 17 | { |
MYY | 6:100377ba0900 | 18 | int i; |
MYY | 6:100377ba0900 | 19 | for(i=0; i<3; i=i+1) {//0-3 are BigGold in level 1 |
MYY | 6:100377ba0900 | 20 | lcd.drawSprite(level_1_x[i],level_1_y[i], 5, 8, (int*)BigGold); |
MYY | 6:100377ba0900 | 21 | }; |
MYY | 6:100377ba0900 | 22 | for(i=3; i<5; i=i+1) {//0-3 are SmallGold in level 1 |
MYY | 6:100377ba0900 | 23 | lcd.drawSprite(level_1_x[i], level_1_y[i], 4, 3, (int*)SmallGold); |
MYY | 6:100377ba0900 | 24 | }; |
MYY | 6:100377ba0900 | 25 | for(i=5; i<7; i=i+1) {//0-3 are BigRock in level 1 |
MYY | 6:100377ba0900 | 26 | lcd.drawSprite(level_1_x[i], level_1_y[i], 8, 10, (int*)BigRock); |
MYY | 6:100377ba0900 | 27 | } |
MYY | 6:100377ba0900 | 28 | lcd.printString("Goal:40",40,5); |
MYY | 6:100377ba0900 | 29 | } |
MYY | 6:100377ba0900 | 30 | |
MYY | 6:100377ba0900 | 31 | // this a private function used to draw map for level 2 |
MYY | 6:100377ba0900 | 32 | // same idea as level 1 with different coordinates and goal |
MYY | 6:100377ba0900 | 33 | void Image::draw_map_2(N5110 &lcd) |
MYY | 6:100377ba0900 | 34 | { |
MYY | 6:100377ba0900 | 35 | int i; |
MYY | 6:100377ba0900 | 36 | //big gold |
MYY | 6:100377ba0900 | 37 | for(i=0; i<4; i=i+1) { |
MYY | 6:100377ba0900 | 38 | lcd.drawSprite(level_2_x[i],level_2_y[i], 5, 8, (int*)BigGold); |
MYY | 6:100377ba0900 | 39 | }; |
MYY | 6:100377ba0900 | 40 | // small gold |
MYY | 6:100377ba0900 | 41 | for(i=4; i<7; i=i+1) { |
MYY | 6:100377ba0900 | 42 | lcd.drawSprite(level_2_x[i], level_2_y[i], 4, 3, (int*)SmallGold); |
MYY | 6:100377ba0900 | 43 | }; |
MYY | 6:100377ba0900 | 44 | //Big rock |
MYY | 6:100377ba0900 | 45 | for(i=7; i<10; i=i+1) { |
MYY | 6:100377ba0900 | 46 | lcd.drawSprite(level_2_x[i], level_2_y[i], 8, 10, (int*)BigRock); |
MYY | 6:100377ba0900 | 47 | } |
MYY | 6:100377ba0900 | 48 | lcd.printString("Goal:95",40,5);// printing the goal we need to pass level 1 |
MYY | 6:100377ba0900 | 49 | } |
MYY | 6:100377ba0900 | 50 | |
MYY | 6:100377ba0900 | 51 | // this a private function used to draw map for level 3 |
MYY | 6:100377ba0900 | 52 | // same idea as level 1 with different coordinates and goal |
MYY | 6:100377ba0900 | 53 | void Image::draw_map_3(N5110 &lcd) |
MYY | 0:da6e8a366665 | 54 | { |
MYY | 0:da6e8a366665 | 55 | int i; |
MYY | 0:da6e8a366665 | 56 | //big gold |
MYY | 6:100377ba0900 | 57 | for(i=0; i<5; i=i+1) { |
MYY | 6:100377ba0900 | 58 | lcd.drawSprite(level_3_x[i],level_3_y[i], 5, 8, (int*)BigGold); |
MYY | 0:da6e8a366665 | 59 | }; |
MYY | 0:da6e8a366665 | 60 | // small gold |
MYY | 6:100377ba0900 | 61 | for(i=5; i<8; i=i+1) { |
MYY | 6:100377ba0900 | 62 | lcd.drawSprite(level_3_x[i], level_3_y[i], 4, 3, (int*)SmallGold); |
MYY | 0:da6e8a366665 | 63 | }; |
MYY | 0:da6e8a366665 | 64 | //Big rock |
MYY | 6:100377ba0900 | 65 | for(i=8; i<12; i=i+1) { |
MYY | 6:100377ba0900 | 66 | lcd.drawSprite(level_3_x[i], level_3_y[i], 8, 10, (int*)BigRock); |
MYY | 0:da6e8a366665 | 67 | } |
MYY | 6:100377ba0900 | 68 | lcd.printString("Goal:150",34,5); |
MYY | 6:100377ba0900 | 69 | } |
MYY | 6:100377ba0900 | 70 | |
MYY | 6:100377ba0900 | 71 | //This function draw every thing on the map. |
MYY | 6:100377ba0900 | 72 | void Image::draw_object(int x, int y, const int *graph, N5110 &lcd, Image &Image, float time, Rotate &Rotate, float angle, float speed, int sizex, int sizey) |
MYY | 6:100377ba0900 | 73 | { |
MYY | 6:100377ba0900 | 74 | x = x - speed*cos(angle);//This can calculate the route when we rotate, release or pull. |
MYY | 6:100377ba0900 | 75 | y = y + speed*sin(angle); |
MYY | 6:100377ba0900 | 76 | lcd.clear(); |
MYY | 6:100377ba0900 | 77 | lcd.drawSprite(x, y, sizex,sizey, (int*) graph);//draw hook/Gold/Rock depends on what stage you are at. |
MYY | 6:100377ba0900 | 78 | lcd.drawLine(42,0, x, y, 1);//draw line between (42,0) and hook/Gold/Rock. |
MYY | 6:100377ba0900 | 79 | Image.draw_map_1(lcd);//draw map |
MYY | 6:100377ba0900 | 80 | Image.print_UI(lcd);//draw UI |
MYY | 6:100377ba0900 | 81 | lcd.refresh(); |
MYY | 6:100377ba0900 | 82 | wait(time); |
MYY | 6:100377ba0900 | 83 | Rotate.hookpoint[0]=x;//return the new hook point, we cannot replace x,y in the declaration with hookpoint because the rotate stage. |
MYY | 6:100377ba0900 | 84 | Rotate.hookpoint[1]=y; |
MYY | 0:da6e8a366665 | 85 | } |
MYY | 3:d31341240f10 | 86 | |
MYY | 6:100377ba0900 | 87 | // same idea as level 1 with different map |
MYY | 6:100377ba0900 | 88 | void Image::draw_object_2(int x, int y, const int *graph, N5110 &lcd, Image &Image, float time, Rotate &Rotate, float angle, float speed, int sizex, int sizey) |
MYY | 6:100377ba0900 | 89 | { |
MYY | 6:100377ba0900 | 90 | x = x - speed*cos(angle); |
MYY | 6:100377ba0900 | 91 | y = y + speed*sin(angle); |
MYY | 6:100377ba0900 | 92 | //Score = Score + new_score; |
MYY | 6:100377ba0900 | 93 | lcd.clear(); |
MYY | 6:100377ba0900 | 94 | lcd.drawSprite(x, y, sizex,sizey, (int*) graph); |
MYY | 6:100377ba0900 | 95 | lcd.drawLine(42,0, x, y, 1); |
MYY | 6:100377ba0900 | 96 | Image.draw_map_2(lcd); |
MYY | 6:100377ba0900 | 97 | Image.print_UI(lcd); |
MYY | 6:100377ba0900 | 98 | lcd.refresh(); |
MYY | 6:100377ba0900 | 99 | wait(time); |
MYY | 6:100377ba0900 | 100 | Rotate.hookpoint[0]=x; |
MYY | 6:100377ba0900 | 101 | Rotate.hookpoint[1]=y; |
MYY | 6:100377ba0900 | 102 | } |
MYY | 6:100377ba0900 | 103 | |
MYY | 6:100377ba0900 | 104 | // same idea as level 1 with different map |
MYY | 6:100377ba0900 | 105 | void Image::draw_object_3(int x, int y, const int *graph, N5110 &lcd, Image &Image, float time, Rotate &Rotate, float angle, float speed, int sizex, int sizey) |
MYY | 6:100377ba0900 | 106 | { |
MYY | 6:100377ba0900 | 107 | x = x - speed*cos(angle); |
MYY | 6:100377ba0900 | 108 | y = y + speed*sin(angle); |
MYY | 6:100377ba0900 | 109 | //Score = Score + new_score; |
MYY | 6:100377ba0900 | 110 | lcd.clear(); |
MYY | 6:100377ba0900 | 111 | lcd.drawSprite(x, y, sizex,sizey, (int*) graph); |
MYY | 6:100377ba0900 | 112 | lcd.drawLine(42,0, x, y, 1); |
MYY | 6:100377ba0900 | 113 | Image.draw_map_3(lcd); |
MYY | 6:100377ba0900 | 114 | Image.print_UI(lcd); |
MYY | 6:100377ba0900 | 115 | lcd.refresh(); |
MYY | 6:100377ba0900 | 116 | wait(time); |
MYY | 6:100377ba0900 | 117 | Rotate.hookpoint[0]=x; |
MYY | 6:100377ba0900 | 118 | Rotate.hookpoint[1]=y; |
MYY | 6:100377ba0900 | 119 | } |
MYY | 6:100377ba0900 | 120 | |
MYY | 6:100377ba0900 | 121 | //This function can print UI which includes Score, Goal, Time remain, TNT number. |
MYY | 6:100377ba0900 | 122 | void Image::print_UI(N5110 &lcd) |
MYY | 6:100377ba0900 | 123 | { |
MYY | 6:100377ba0900 | 124 | lcd.drawSprite(0, 40,6,6, (int*)TNT_graph); |
MYY | 6:100377ba0900 | 125 | char buffer[14]; |
MYY | 6:100377ba0900 | 126 | char buffer2[14]; |
MYY | 6:100377ba0900 | 127 | char buffer3[14]; |
MYY | 6:100377ba0900 | 128 | sprintf(buffer,"%i",Score); |
MYY | 6:100377ba0900 | 129 | sprintf(buffer2,"%i",Timer_1); |
MYY | 6:100377ba0900 | 130 | sprintf(buffer3,":%i",TNT_num); |
MYY | 6:100377ba0900 | 131 | lcd.printString(buffer,0,0); |
MYY | 6:100377ba0900 | 132 | lcd.printString(buffer2,70,0); |
MYY | 6:100377ba0900 | 133 | lcd.printString(buffer3,8,5); |
MYY | 6:100377ba0900 | 134 | } |