Image library for all the graph. Just test

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?

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