Laila Al Badwawi 200906179 SpaceInvaders I declare this my own independent work and understand the university rules on plagiarism.
Dependencies: mbed
main.cpp@133:eed60548d170, 2019-05-08 (annotated)
- Committer:
- fy14lkaa
- Date:
- Wed May 08 18:54:03 2019 +0000
- Revision:
- 133:eed60548d170
- Parent:
- 131:2084e4a8338f
- Child:
- 137:fe80c0f2da9d
choose the alien to move randomly by using srand function.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fy14lkaa | 3:985fab783b92 | 1 | ///////// pre-processor directives //////// |
fy14lkaa | 0:e2af4c8e462e | 2 | #include "mbed.h" |
fy14lkaa | 0:e2af4c8e462e | 3 | #include "Gamepad.h" |
fy14lkaa | 0:e2af4c8e462e | 4 | #include "N5110.h" |
fy14lkaa | 127:8bd8cf136f19 | 5 | #include "SpaceEngine.h" |
fy14lkaa | 8:eec0d7fc365f | 6 | |
fy14lkaa | 131:2084e4a8338f | 7 | |
fy14lkaa | 131:2084e4a8338f | 8 | |
fy14lkaa | 133:eed60548d170 | 9 | |
fy14lkaa | 133:eed60548d170 | 10 | |
fy14lkaa | 133:eed60548d170 | 11 | const |
fy14lkaa | 133:eed60548d170 | 12 | int spaceman [48][48]={ |
fy14lkaa | 133:eed60548d170 | 13 | |
fy14lkaa | 133:eed60548d170 | 14 | |
fy14lkaa | 133:eed60548d170 | 15 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 16 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 17 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 18 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 19 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 20 | {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 21 | {0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 22 | {0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 23 | {0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 24 | {0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 25 | {0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 26 | {0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1}, |
fy14lkaa | 133:eed60548d170 | 27 | {0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 28 | {0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 29 | {0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 30 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 31 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 32 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 33 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 34 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 35 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 36 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 37 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 38 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 39 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 40 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 41 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 42 | {0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 43 | {0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 44 | {0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 45 | {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 46 | {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 47 | {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 48 | {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
fy14lkaa | 133:eed60548d170 | 49 | {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}, |
fy14lkaa | 133:eed60548d170 | 50 | {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, |
fy14lkaa | 133:eed60548d170 | 51 | {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, |
fy14lkaa | 133:eed60548d170 | 52 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 53 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 54 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
fy14lkaa | 133:eed60548d170 | 55 | }; |
fy14lkaa | 133:eed60548d170 | 56 | |
fy14lkaa | 133:eed60548d170 | 57 | |
fy14lkaa | 133:eed60548d170 | 58 | |
fy14lkaa | 133:eed60548d170 | 59 | |
fy14lkaa | 133:eed60548d170 | 60 | |
fy14lkaa | 133:eed60548d170 | 61 | |
fy14lkaa | 131:2084e4a8338f | 62 | // structs // |
fy14lkaa | 0:e2af4c8e462e | 63 | struct UserInput { |
fy14lkaa | 0:e2af4c8e462e | 64 | Direction d; |
fy14lkaa | 0:e2af4c8e462e | 65 | float mag; |
fy14lkaa | 0:e2af4c8e462e | 66 | }; |
fy14lkaa | 133:eed60548d170 | 67 | |
fy14lkaa | 133:eed60548d170 | 68 | |
fy14lkaa | 127:8bd8cf136f19 | 69 | /////////////// objects /////////////// |
fy14lkaa | 50:f538885a788b | 70 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
fy14lkaa | 0:e2af4c8e462e | 71 | Gamepad pad; |
fy14lkaa | 127:8bd8cf136f19 | 72 | SpaceEngine space; |
fy14lkaa | 13:9d6ee753eca6 | 73 | |
fy14lkaa | 3:985fab783b92 | 74 | ///////////// prototypes /////////////// |
fy14lkaa | 0:e2af4c8e462e | 75 | void init(); |
fy14lkaa | 0:e2af4c8e462e | 76 | void update_game(UserInput input); |
fy14lkaa | 0:e2af4c8e462e | 77 | void render(); |
fy14lkaa | 0:e2af4c8e462e | 78 | void welcome(); |
fy14lkaa | 12:45b1249b3d9a | 79 | |
fy14lkaa | 13:9d6ee753eca6 | 80 | ///////////// functions //////////////// |
fy14lkaa | 54:095eae44895b | 81 | int main() |
fy14lkaa | 54:095eae44895b | 82 | { |
fy14lkaa | 12:45b1249b3d9a | 83 | |
fy14lkaa | 131:2084e4a8338f | 84 | int fps = 8; |
fy14lkaa | 131:2084e4a8338f | 85 | init(); |
fy14lkaa | 131:2084e4a8338f | 86 | welcome(); |
fy14lkaa | 131:2084e4a8338f | 87 | render(); |
fy14lkaa | 128:a3f581b8461c | 88 | wait(1.0f/fps); |
fy14lkaa | 54:095eae44895b | 89 | |
fy14lkaa | 0:e2af4c8e462e | 90 | while (1) { |
fy14lkaa | 54:095eae44895b | 91 | space.read_input(pad); |
fy14lkaa | 12:45b1249b3d9a | 92 | space.update(pad); |
fy14lkaa | 54:095eae44895b | 93 | render(); |
fy14lkaa | 127:8bd8cf136f19 | 94 | wait(1.0f/fps); |
fy14lkaa | 57:45c5de9cefdf | 95 | } |
fy14lkaa | 54:095eae44895b | 96 | } |
fy14lkaa | 54:095eae44895b | 97 | |
fy14lkaa | 54:095eae44895b | 98 | // initialies all classes and libraries |
fy14lkaa | 54:095eae44895b | 99 | void init() |
fy14lkaa | 54:095eae44895b | 100 | { |
fy14lkaa | 0:e2af4c8e462e | 101 | lcd.init(); |
fy14lkaa | 54:095eae44895b | 102 | pad.init(); |
fy14lkaa | 131:2084e4a8338f | 103 | |
fy14lkaa | 131:2084e4a8338f | 104 | |
fy14lkaa | 133:eed60548d170 | 105 | space.init(0,10,16,10,0,70,10,1,1,1); |
fy14lkaa | 54:095eae44895b | 106 | |
fy14lkaa | 3:985fab783b92 | 107 | } |
fy14lkaa | 54:095eae44895b | 108 | |
fy14lkaa | 54:095eae44895b | 109 | void render() |
fy14lkaa | 54:095eae44895b | 110 | { |
fy14lkaa | 131:2084e4a8338f | 111 | |
fy14lkaa | 131:2084e4a8338f | 112 | lcd.clear(); |
fy14lkaa | 12:45b1249b3d9a | 113 | space.draw(lcd); |
fy14lkaa | 0:e2af4c8e462e | 114 | lcd.refresh(); |
fy14lkaa | 0:e2af4c8e462e | 115 | } |
fy14lkaa | 3:985fab783b92 | 116 | |
fy14lkaa | 128:a3f581b8461c | 117 | |
fy14lkaa | 131:2084e4a8338f | 118 | void welcome() |
fy14lkaa | 131:2084e4a8338f | 119 | { |
fy14lkaa | 133:eed60548d170 | 120 | lcd.clear(); |
fy14lkaa | 133:eed60548d170 | 121 | |
fy14lkaa | 133:eed60548d170 | 122 | lcd.printString("SpaceInvaders!",0,1); |
fy14lkaa | 133:eed60548d170 | 123 | lcd.printString(" Press Start ",4,4); |
fy14lkaa | 133:eed60548d170 | 124 | lcd.clear(); |
fy14lkaa | 133:eed60548d170 | 125 | lcd.refresh(); |
fy14lkaa | 133:eed60548d170 | 126 | lcd.printString(" Space is yours!",0,1); |
fy14lkaa | 133:eed60548d170 | 127 | lcd.drawSprite(10,10,48,48,(int *)spaceman); |
fy14lkaa | 0:e2af4c8e462e | 128 | lcd.refresh(); |
fy14lkaa | 131:2084e4a8338f | 129 | |
fy14lkaa | 131:2084e4a8338f | 130 | // wait flashing LEDs until start button is pressed |
fy14lkaa | 0:e2af4c8e462e | 131 | while ( pad.check_event(Gamepad::START_PRESSED) == false) { |
fy14lkaa | 0:e2af4c8e462e | 132 | pad.leds_on(); |
fy14lkaa | 127:8bd8cf136f19 | 133 | wait(0.1); |
fy14lkaa | 0:e2af4c8e462e | 134 | pad.leds_off(); |
fy14lkaa | 0:e2af4c8e462e | 135 | wait(0.1); |
fy14lkaa | 0:e2af4c8e462e | 136 | } |
fy14lkaa | 131:2084e4a8338f | 137 | |
fy14lkaa | 127:8bd8cf136f19 | 138 | } |
fy14lkaa | 54:095eae44895b | 139 | |
fy14lkaa | 54:095eae44895b | 140 | |
fy14lkaa | 54:095eae44895b | 141 | |
fy14lkaa | 133:eed60548d170 | 142 |