ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Committer:
el17arm
Date:
Thu Apr 11 21:29:48 2019 +0000
Revision:
34:c5a042973e0c
Parent:
33:023f57d52b1c
Child:
35:b7a0f0b363d0
Child:
36:203ec93b4cc7
better collision for keys and traps

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17arm 33:023f57d52b1c 1 #ifndef SPRITES_H
el17arm 33:023f57d52b1c 2 #define SPRITES_H
el17arm 33:023f57d52b1c 3
el17arm 33:023f57d52b1c 4 #include "mbed.h"
el17arm 33:023f57d52b1c 5 #include "N5110.h"
el17arm 33:023f57d52b1c 6 #include "Gamepad.h"
el17arm 33:023f57d52b1c 7
el17arm 33:023f57d52b1c 8 const int miner_right[24] = {
el17arm 33:023f57d52b1c 9 1,1,1,
el17arm 33:023f57d52b1c 10 1,1,0,
el17arm 33:023f57d52b1c 11 1,1,1,
el17arm 33:023f57d52b1c 12 0,1,0,
el17arm 33:023f57d52b1c 13 1,1,1,
el17arm 33:023f57d52b1c 14 1,1,1,
el17arm 33:023f57d52b1c 15 0,1,0,
el17arm 33:023f57d52b1c 16 0,1,1,
el17arm 33:023f57d52b1c 17
el17arm 33:023f57d52b1c 18 };
el17arm 33:023f57d52b1c 19
el17arm 33:023f57d52b1c 20 const int miner_left[24] = {
el17arm 33:023f57d52b1c 21 1,1,1,
el17arm 33:023f57d52b1c 22 0,1,1,
el17arm 33:023f57d52b1c 23 1,1,1,
el17arm 33:023f57d52b1c 24 0,1,0,
el17arm 33:023f57d52b1c 25 1,1,1,
el17arm 33:023f57d52b1c 26 1,1,1,
el17arm 33:023f57d52b1c 27 0,1,0,
el17arm 33:023f57d52b1c 28 1,1,0,
el17arm 33:023f57d52b1c 29 };
el17arm 33:023f57d52b1c 30
el17arm 33:023f57d52b1c 31 const int enemy[15] = {
el17arm 33:023f57d52b1c 32
el17arm 33:023f57d52b1c 33 1,1,1,
el17arm 33:023f57d52b1c 34 1,0,1,
el17arm 33:023f57d52b1c 35 1,1,1,
el17arm 33:023f57d52b1c 36 0,1,0,
el17arm 33:023f57d52b1c 37 1,1,1,
el17arm 33:023f57d52b1c 38 };
el17arm 33:023f57d52b1c 39
el17arm 33:023f57d52b1c 40 const int key[12] = {
el17arm 33:023f57d52b1c 41 1,1,0,0,
el17arm 33:023f57d52b1c 42 1,0,1,1,
el17arm 33:023f57d52b1c 43 1,1,0,1,
el17arm 33:023f57d52b1c 44 };
el17arm 33:023f57d52b1c 45
el17arm 33:023f57d52b1c 46 const int key_collected[12] = {
el17arm 33:023f57d52b1c 47
el17arm 33:023f57d52b1c 48 0,0,0,0,
el17arm 33:023f57d52b1c 49 0,0,0,0,
el17arm 33:023f57d52b1c 50 0,0,0,0,
el17arm 33:023f57d52b1c 51 };
el17arm 33:023f57d52b1c 52
el17arm 33:023f57d52b1c 53 const int spike[9] = {
el17arm 33:023f57d52b1c 54
el17arm 34:c5a042973e0c 55 1,0,1,
el17arm 33:023f57d52b1c 56 0,1,0,
el17arm 34:c5a042973e0c 57 1,0,1,
el17arm 33:023f57d52b1c 58 };
el17arm 33:023f57d52b1c 59
el17arm 34:c5a042973e0c 60 const int solid_block[18] = {
el17arm 33:023f57d52b1c 61
el17arm 34:c5a042973e0c 62 1,1,1,1,1,1,
el17arm 34:c5a042973e0c 63 1,0,1,1,0,1,
el17arm 34:c5a042973e0c 64 1,1,1,1,1,1,
el17arm 34:c5a042973e0c 65
el17arm 33:023f57d52b1c 66 };
el17arm 33:023f57d52b1c 67
el17arm 33:023f57d52b1c 68 const int door[30] = {
el17arm 33:023f57d52b1c 69
el17arm 33:023f57d52b1c 70 1,1,1,1,1,
el17arm 33:023f57d52b1c 71 1,0,1,0,1,
el17arm 33:023f57d52b1c 72 1,1,0,1,1,
el17arm 33:023f57d52b1c 73 1,0,1,0,1,
el17arm 33:023f57d52b1c 74 1,1,0,1,1,
el17arm 33:023f57d52b1c 75 1,0,1,0,1,
el17arm 33:023f57d52b1c 76 };
el17arm 33:023f57d52b1c 77
el17arm 33:023f57d52b1c 78 struct enemies {
el17arm 33:023f57d52b1c 79 bool eflag[5];
el17arm 33:023f57d52b1c 80 double ex[5];
el17arm 33:023f57d52b1c 81 double ey[5];
el17arm 33:023f57d52b1c 82 int counter[5];
el17arm 33:023f57d52b1c 83 int distance[5];
el17arm 34:c5a042973e0c 84
el17arm 34:c5a042973e0c 85
el17arm 33:023f57d52b1c 86 };
el17arm 33:023f57d52b1c 87
el17arm 34:c5a042973e0c 88 struct keyed {
el17arm 33:023f57d52b1c 89 bool key[5];
el17arm 34:c5a042973e0c 90 double kx[5];
el17arm 34:c5a042973e0c 91 double ky[5];
el17arm 34:c5a042973e0c 92 };
el17arm 34:c5a042973e0c 93
el17arm 34:c5a042973e0c 94 struct trap_str {
el17arm 34:c5a042973e0c 95 bool trap[5];
el17arm 34:c5a042973e0c 96 double tx[5];
el17arm 34:c5a042973e0c 97 double ty[5];
el17arm 33:023f57d52b1c 98 };
el17arm 33:023f57d52b1c 99
el17arm 33:023f57d52b1c 100 class Sprites
el17arm 33:023f57d52b1c 101 {
el17arm 33:023f57d52b1c 102
el17arm 33:023f57d52b1c 103 public:
el17arm 33:023f57d52b1c 104
el17arm 33:023f57d52b1c 105 Sprites();
el17arm 33:023f57d52b1c 106 ~Sprites();
el17arm 33:023f57d52b1c 107
el17arm 33:023f57d52b1c 108 void miner_init(int x, int y);
el17arm 33:023f57d52b1c 109 void miner_move(Direction d, N5110 &lcd);
el17arm 33:023f57d52b1c 110 void miner_draw(N5110 &lcd);
el17arm 33:023f57d52b1c 111 void miner_gravity(N5110 &lcd);
el17arm 33:023f57d52b1c 112 void miner_jump(N5110 &lcd, Gamepad &pad);
el17arm 33:023f57d52b1c 113 void miner_land(N5110 &lcd);
el17arm 33:023f57d52b1c 114
el17arm 33:023f57d52b1c 115 void enemy_init(int i, int x, int y, int d);
el17arm 33:023f57d52b1c 116 void enemy_move(int i, double v, N5110 &lcd);
el17arm 33:023f57d52b1c 117 bool enemy_collision(int i);
el17arm 33:023f57d52b1c 118
el17arm 33:023f57d52b1c 119 void key_collect(int k, int x, int y, N5110 &lcd, Gamepad &pad);
el17arm 33:023f57d52b1c 120 int keys_collected();
el17arm 33:023f57d52b1c 121
el17arm 33:023f57d52b1c 122 bool exit_level(int x, int y, N5110 &lcd);
el17arm 33:023f57d52b1c 123
el17arm 34:c5a042973e0c 124 bool trap(int t, int x, int y, N5110 &lcd);
el17arm 34:c5a042973e0c 125 void blocks(int b, int x, int y, N5110 &lcd);
el17arm 33:023f57d52b1c 126 void soft_blocks(int x, int y, N5110 &lcd);
el17arm 33:023f57d52b1c 127
el17arm 33:023f57d52b1c 128 Vector2D get_pos();
el17arm 33:023f57d52b1c 129
el17arm 33:023f57d52b1c 130 private:
el17arm 33:023f57d52b1c 131
el17arm 33:023f57d52b1c 132 int _direction;
el17arm 33:023f57d52b1c 133 int _gravity;
el17arm 33:023f57d52b1c 134 bool _jump;
el17arm 33:023f57d52b1c 135 int _y;
el17arm 33:023f57d52b1c 136 int _x;
el17arm 33:023f57d52b1c 137 bool _j_flag;
el17arm 33:023f57d52b1c 138 int _j_counter;
el17arm 33:023f57d52b1c 139
el17arm 34:c5a042973e0c 140 bool block[5];
el17arm 34:c5a042973e0c 141 double bx[5];
el17arm 34:c5a042973e0c 142 double by[5];
el17arm 34:c5a042973e0c 143
el17arm 34:c5a042973e0c 144 keyed _k;
el17arm 33:023f57d52b1c 145 int _keys;
el17arm 34:c5a042973e0c 146 bool _collision;
el17arm 33:023f57d52b1c 147
el17arm 34:c5a042973e0c 148 trap_str _trap;
el17arm 33:023f57d52b1c 149 enemies _enem;
el17arm 33:023f57d52b1c 150
el17arm 33:023f57d52b1c 151 };
el17arm 33:023f57d52b1c 152 #endif