It use the joystick to control the copter, when the copter bumper the wall, it will death.

Dependencies:   mbed N5110

Committer:
Wuuu
Date:
Fri May 03 12:19:10 2019 +0000
Revision:
0:29bec73b2c04
Copter, all program in a main.cpp, it implement basic function.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wuuu 0:29bec73b2c04 1 #include "mbed.h"
Wuuu 0:29bec73b2c04 2 #include "N5110.h"
Wuuu 0:29bec73b2c04 3 #include "Bitmap.h"
Wuuu 0:29bec73b2c04 4 #include "Gamepad.h"
Wuuu 0:29bec73b2c04 5
Wuuu 0:29bec73b2c04 6
Wuuu 0:29bec73b2c04 7 N5110 lcd(PTC9, PTC0, PTC7, PTD2, PTD1, PTC11);
Wuuu 0:29bec73b2c04 8 Gamepad pad;
Wuuu 0:29bec73b2c04 9
Wuuu 0:29bec73b2c04 10 int sprite_data[] = {
Wuuu 0:29bec73b2c04 11 0,0,0,0,0,0,0,0,
Wuuu 0:29bec73b2c04 12 0,0,0,0,0,0,0,0,
Wuuu 0:29bec73b2c04 13 0,0,1,1,1,1,1,0,
Wuuu 0:29bec73b2c04 14 0,0,0,0,1,0,0,0,
Wuuu 0:29bec73b2c04 15 0,0,0,1,1,1,0,0,
Wuuu 0:29bec73b2c04 16 0,0,1,1,1,1,1,0,
Wuuu 0:29bec73b2c04 17 1,1,1,1,1,1,1,1,
Wuuu 0:29bec73b2c04 18 1,1,1,1,1,1,1,0,
Wuuu 0:29bec73b2c04 19 0,0,0,0,0,0,0,0,
Wuuu 0:29bec73b2c04 20 0,0,0,0,0,0,0,0,
Wuuu 0:29bec73b2c04 21 };
Wuuu 0:29bec73b2c04 22 void init();
Wuuu 0:29bec73b2c04 23 void game();
Wuuu 0:29bec73b2c04 24 void welcome();
Wuuu 0:29bec73b2c04 25
Wuuu 0:29bec73b2c04 26 int main()
Wuuu 0:29bec73b2c04 27 {
Wuuu 0:29bec73b2c04 28 init();
Wuuu 0:29bec73b2c04 29 lcd.normalMode();
Wuuu 0:29bec73b2c04 30 lcd.setBrightness(0.3);
Wuuu 0:29bec73b2c04 31 lcd.setContrast(0.5);
Wuuu 0:29bec73b2c04 32 while(1){
Wuuu 0:29bec73b2c04 33 welcome();
Wuuu 0:29bec73b2c04 34 if(pad.check_event(Gamepad::START_PRESSED) == true) {
Wuuu 0:29bec73b2c04 35 game();
Wuuu 0:29bec73b2c04 36 }
Wuuu 0:29bec73b2c04 37 wait(0.5);
Wuuu 0:29bec73b2c04 38 }
Wuuu 0:29bec73b2c04 39 }
Wuuu 0:29bec73b2c04 40
Wuuu 0:29bec73b2c04 41 void init() {
Wuuu 0:29bec73b2c04 42 lcd.init();
Wuuu 0:29bec73b2c04 43 pad.init();
Wuuu 0:29bec73b2c04 44 }
Wuuu 0:29bec73b2c04 45
Wuuu 0:29bec73b2c04 46 void welcome() {
Wuuu 0:29bec73b2c04 47 lcd.clear();
Wuuu 0:29bec73b2c04 48 lcd.printString(" COPTER ",0,2);
Wuuu 0:29bec73b2c04 49 lcd.printString(" Press start",0,4);
Wuuu 0:29bec73b2c04 50 lcd.refresh();
Wuuu 0:29bec73b2c04 51 wait(0.3);
Wuuu 0:29bec73b2c04 52 }
Wuuu 0:29bec73b2c04 53
Wuuu 0:29bec73b2c04 54 void game() {
Wuuu 0:29bec73b2c04 55 lcd.clear();
Wuuu 0:29bec73b2c04 56 lcd.printString(" READY!!! ",0,3);
Wuuu 0:29bec73b2c04 57 lcd.refresh();
Wuuu 0:29bec73b2c04 58 wait_ms(500);
Wuuu 0:29bec73b2c04 59 lcd.clear();
Wuuu 0:29bec73b2c04 60 lcd.printString(" 3 ",0,3);
Wuuu 0:29bec73b2c04 61 lcd.refresh();
Wuuu 0:29bec73b2c04 62 wait_ms(500);
Wuuu 0:29bec73b2c04 63 lcd.clear();
Wuuu 0:29bec73b2c04 64 lcd.printString(" 2 ",0,3);
Wuuu 0:29bec73b2c04 65 lcd.refresh();
Wuuu 0:29bec73b2c04 66 wait_ms(500);
Wuuu 0:29bec73b2c04 67 lcd.clear();
Wuuu 0:29bec73b2c04 68 lcd.printString(" 1 ",0,3);
Wuuu 0:29bec73b2c04 69 lcd.refresh();
Wuuu 0:29bec73b2c04 70 wait_ms(500);
Wuuu 0:29bec73b2c04 71 lcd.clear();
Wuuu 0:29bec73b2c04 72 lcd.printString(" GO!!! ",0,3);
Wuuu 0:29bec73b2c04 73 lcd.refresh();
Wuuu 0:29bec73b2c04 74 wait_ms(500);
Wuuu 0:29bec73b2c04 75 int a1 = 20;
Wuuu 0:29bec73b2c04 76 int a2 = 20;
Wuuu 0:29bec73b2c04 77 int a3 = 20;
Wuuu 0:29bec73b2c04 78 int a4 = 20;
Wuuu 0:29bec73b2c04 79 int b1 = 20;
Wuuu 0:29bec73b2c04 80 int b2 = 20;
Wuuu 0:29bec73b2c04 81 int b3 = 20;
Wuuu 0:29bec73b2c04 82 int b4 = 20;
Wuuu 0:29bec73b2c04 83 int n = 0;
Wuuu 0:29bec73b2c04 84 while(pad.check_event(Gamepad::BACK_PRESSED) == false) {
Wuuu 0:29bec73b2c04 85 lcd.clear();
Wuuu 0:29bec73b2c04 86 int num1 = rand() % 10 + 5;
Wuuu 0:29bec73b2c04 87 int num2 = rand() % 6 + 14;
Wuuu 0:29bec73b2c04 88 a1 = a2;
Wuuu 0:29bec73b2c04 89 a2 = a3;
Wuuu 0:29bec73b2c04 90 a3 = a4;
Wuuu 0:29bec73b2c04 91 a4 = num1;
Wuuu 0:29bec73b2c04 92 b1 = b2;
Wuuu 0:29bec73b2c04 93 b2 = b3;
Wuuu 0:29bec73b2c04 94 b3 = b4;
Wuuu 0:29bec73b2c04 95 b4 = num2;
Wuuu 0:29bec73b2c04 96 Vector2D coord = pad.get_coord();
Wuuu 0:29bec73b2c04 97 int h = 17 * coord.y;
Wuuu 0:29bec73b2c04 98 Bitmap sprite(sprite_data, 10, 8);
Wuuu 0:29bec73b2c04 99 sprite.render(lcd,1,15-h);
Wuuu 0:29bec73b2c04 100 char buffer1[4];
Wuuu 0:29bec73b2c04 101 sprintf(buffer1,"score: %2d ",n);
Wuuu 0:29bec73b2c04 102 lcd.printString(buffer1,0,0);
Wuuu 0:29bec73b2c04 103 lcd.drawRect(0,8,84,40,FILL_TRANSPARENT);
Wuuu 0:29bec73b2c04 104 lcd.drawRect(0,8,21,b1-a1,FILL_BLACK);
Wuuu 0:29bec73b2c04 105 lcd.drawRect(0,8+b1+a1,21,40-b1-a1,FILL_BLACK);
Wuuu 0:29bec73b2c04 106 lcd.drawRect(21,8,21,b2-a2,FILL_BLACK);
Wuuu 0:29bec73b2c04 107 lcd.drawRect(21,8+b2+a2,21,40-b2-a2,FILL_BLACK);
Wuuu 0:29bec73b2c04 108 lcd.drawRect(42,8,21,b3-a3,FILL_BLACK);
Wuuu 0:29bec73b2c04 109 lcd.drawRect(42,8+b3+a3,21,40-b3-a3,FILL_BLACK);
Wuuu 0:29bec73b2c04 110 lcd.drawRect(63,8,21,b4-a4,FILL_BLACK);
Wuuu 0:29bec73b2c04 111 lcd.drawRect(63,8+b4+a4,21,40-b4-a4,FILL_BLACK);
Wuuu 0:29bec73b2c04 112 int d = 8 + b1 - a1;
Wuuu 0:29bec73b2c04 113 int e = 8 + b1 + a1;
Wuuu 0:29bec73b2c04 114 if(d >= 17-h | e <= 23-h){
Wuuu 0:29bec73b2c04 115 while(1){
Wuuu 0:29bec73b2c04 116 welcome();
Wuuu 0:29bec73b2c04 117 if(pad.check_event(Gamepad::START_PRESSED) == true) {
Wuuu 0:29bec73b2c04 118 game();
Wuuu 0:29bec73b2c04 119 }
Wuuu 0:29bec73b2c04 120 wait(0.5);
Wuuu 0:29bec73b2c04 121 };
Wuuu 0:29bec73b2c04 122 };
Wuuu 0:29bec73b2c04 123 n = n + 10;
Wuuu 0:29bec73b2c04 124 lcd.refresh();
Wuuu 0:29bec73b2c04 125 wait(1);
Wuuu 0:29bec73b2c04 126 }
Wuuu 0:29bec73b2c04 127 }