Aiming Wu
/
Copter
It use the joystick to control the copter, when the copter bumper the wall, it will death.
main.cpp@0:29bec73b2c04, 2019-05-03 (annotated)
- 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?
User | Revision | Line number | New 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 | } |