An easy way to make bitmaps to be drawn on a Nokia N5110 lcd display

Dependencies:   N5110_fordrawings

Dependents:   DCGame el14m2l_Dungeon_Crawler_Game

Committer:
Martyrtle
Date:
Thu May 05 14:26:07 2016 +0000
Revision:
0:9fcda3ae181c
Done

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Martyrtle 0:9fcda3ae181c 1 /**
Martyrtle 0:9fcda3ae181c 2 @file drawings.h
Martyrtle 0:9fcda3ae181c 3 @brief Header file containing function prototypes, defines and global variables for the drawings.cpp file.
Martyrtle 0:9fcda3ae181c 4 @brief Version 1.0.0
Martyrtle 0:9fcda3ae181c 5 @author Marty Laverick
Martyrtle 0:9fcda3ae181c 6 @date 5th May 2016
Martyrtle 0:9fcda3ae181c 7 */
Martyrtle 0:9fcda3ae181c 8
Martyrtle 0:9fcda3ae181c 9 #ifndef _DRAWINGS_H
Martyrtle 0:9fcda3ae181c 10 #define _DRAWINGS_H
Martyrtle 0:9fcda3ae181c 11
Martyrtle 0:9fcda3ae181c 12 #include "mbed.h"
Martyrtle 0:9fcda3ae181c 13 #include "N5110.h"
Martyrtle 0:9fcda3ae181c 14
Martyrtle 0:9fcda3ae181c 15 #define BG 0
Martyrtle 0:9fcda3ae181c 16 #define GAME 1
Martyrtle 0:9fcda3ae181c 17 #define HEALTH 2
Martyrtle 0:9fcda3ae181c 18
Martyrtle 0:9fcda3ae181c 19 extern N5110 lcd;
Martyrtle 0:9fcda3ae181c 20
Martyrtle 0:9fcda3ae181c 21 const char pointer[5][5]= {
Martyrtle 0:9fcda3ae181c 22 //0,1,2,3,4
Martyrtle 0:9fcda3ae181c 23 {1,1,0,0,0},//0
Martyrtle 0:9fcda3ae181c 24 {0,0,1,1,0},//1
Martyrtle 0:9fcda3ae181c 25 {0,0,0,1,1},//2
Martyrtle 0:9fcda3ae181c 26 {0,0,1,1,0},//3
Martyrtle 0:9fcda3ae181c 27 {1,1,0,0,0} //4
Martyrtle 0:9fcda3ae181c 28 }; /*!< Pointer bitmap */
Martyrtle 0:9fcda3ae181c 29
Martyrtle 0:9fcda3ae181c 30 const char player_still[15][13]= {
Martyrtle 0:9fcda3ae181c 31 //0,1,2,3,4,5,6,7,8,9,a,b,c
Martyrtle 0:9fcda3ae181c 32 {0,0,0,0,1,0,0,1,0,0,0,0,0},//0
Martyrtle 0:9fcda3ae181c 33 {0,0,0,1,1,1,1,1,1,0,0,0,0},//1
Martyrtle 0:9fcda3ae181c 34 {0,0,1,2,1,2,2,1,1,1,1,1,0},//2
Martyrtle 0:9fcda3ae181c 35 {0,0,1,2,1,2,1,2,1,2,2,2,1},//3
Martyrtle 0:9fcda3ae181c 36 {0,1,1,2,2,1,2,2,1,1,1,1,1},//4
Martyrtle 0:9fcda3ae181c 37 {1,2,1,1,1,2,2,2,1,0,0,0,0},//5
Martyrtle 0:9fcda3ae181c 38 {1,2,2,1,1,1,1,1,1,0,0,0,0},//6
Martyrtle 0:9fcda3ae181c 39 {1,2,2,2,1,2,2,1,2,1,0,0,0},//7
Martyrtle 0:9fcda3ae181c 40 {0,1,2,2,1,2,2,1,2,1,0,0,0},//8
Martyrtle 0:9fcda3ae181c 41 {0,0,1,1,1,1,1,1,1,1,0,0,0},//9
Martyrtle 0:9fcda3ae181c 42 {0,0,0,0,1,2,2,1,2,1,0,0,0},//a
Martyrtle 0:9fcda3ae181c 43 {0,0,0,0,1,2,2,2,2,1,0,0,0},//b
Martyrtle 0:9fcda3ae181c 44 {0,0,0,0,0,1,1,1,1,0,0,0,0},//c
Martyrtle 0:9fcda3ae181c 45 {0,0,0,0,1,1,1,1,0,0,0,0,0},//d
Martyrtle 0:9fcda3ae181c 46 {0,0,0,0,0,1,1,0,0,0,0,0,0} //e
Martyrtle 0:9fcda3ae181c 47 }; /*!< Player bitmap */
Martyrtle 0:9fcda3ae181c 48
Martyrtle 0:9fcda3ae181c 49 const char player_moving1[15][13]= {
Martyrtle 0:9fcda3ae181c 50 //0,1,2,3,4,5,6,7,8,9,a,b,c
Martyrtle 0:9fcda3ae181c 51 {0,0,0,1,0,0,0,1,0,0,0,0,0},//0
Martyrtle 0:9fcda3ae181c 52 {0,1,0,0,1,1,1,1,1,0,0,0,0},//1
Martyrtle 0:9fcda3ae181c 53 {1,2,1,0,1,2,2,1,1,1,0,0,0},//2
Martyrtle 0:9fcda3ae181c 54 {1,2,2,1,1,2,1,2,1,2,1,0,0},//3
Martyrtle 0:9fcda3ae181c 55 {0,1,2,2,2,1,2,2,1,1,2,1,0},//4
Martyrtle 0:9fcda3ae181c 56 {1,2,1,1,1,2,2,2,1,0,1,2,1},//5
Martyrtle 0:9fcda3ae181c 57 {1,2,2,1,1,1,1,1,1,0,0,1,1},//6
Martyrtle 0:9fcda3ae181c 58 {1,2,2,2,1,2,2,1,2,1,0,0,0},//7
Martyrtle 0:9fcda3ae181c 59 {0,1,2,2,1,2,2,1,2,1,0,0,0},//8
Martyrtle 0:9fcda3ae181c 60 {0,0,1,1,1,1,1,1,1,1,0,0,0},//9
Martyrtle 0:9fcda3ae181c 61 {0,0,0,0,1,2,2,1,2,1,0,0,0},//a
Martyrtle 0:9fcda3ae181c 62 {0,0,0,0,1,2,2,2,2,1,0,0,0},//b
Martyrtle 0:9fcda3ae181c 63 {0,0,0,0,0,1,1,1,1,0,0,0,0},//c
Martyrtle 0:9fcda3ae181c 64 {0,0,0,0,1,1,1,1,0,0,0,0,0},//d
Martyrtle 0:9fcda3ae181c 65 {0,0,0,0,0,1,1,0,0,0,0,0,0} //e
Martyrtle 0:9fcda3ae181c 66 }; /*!< Player first moving transition bitmap */
Martyrtle 0:9fcda3ae181c 67
Martyrtle 0:9fcda3ae181c 68 const char player_moving2[15][13]= {
Martyrtle 0:9fcda3ae181c 69 //0,1,2,3,4,5,6,7,8,9,a,b,c
Martyrtle 0:9fcda3ae181c 70 {0,0,0,0,1,0,1,0,0,0,0,1,1},//0
Martyrtle 0:9fcda3ae181c 71 {0,0,0,0,1,1,1,1,1,0,1,2,1},//1
Martyrtle 0:9fcda3ae181c 72 {0,0,0,0,1,2,1,1,1,1,2,1,0},//2
Martyrtle 0:9fcda3ae181c 73 {0,0,1,1,2,2,1,2,1,2,1,0,0},//3
Martyrtle 0:9fcda3ae181c 74 {0,1,1,2,2,1,2,2,1,1,0,0,0},//4
Martyrtle 0:9fcda3ae181c 75 {1,2,1,2,1,2,2,2,1,0,0,0,0},//5
Martyrtle 0:9fcda3ae181c 76 {1,2,2,1,1,1,1,1,1,0,0,0,0},//6
Martyrtle 0:9fcda3ae181c 77 {1,2,2,2,1,2,2,1,2,1,0,0,0},//7
Martyrtle 0:9fcda3ae181c 78 {0,1,2,2,1,2,2,1,2,1,0,0,0},//8
Martyrtle 0:9fcda3ae181c 79 {0,0,1,1,1,1,1,1,1,1,0,0,0},//9
Martyrtle 0:9fcda3ae181c 80 {0,0,0,0,1,2,2,1,2,1,0,0,0},//a
Martyrtle 0:9fcda3ae181c 81 {0,0,0,0,1,2,2,2,2,1,0,0,0},//b
Martyrtle 0:9fcda3ae181c 82 {0,0,0,0,0,1,1,1,1,0,0,0,0},//c
Martyrtle 0:9fcda3ae181c 83 {0,0,0,0,1,1,1,1,0,0,0,0,0},//d
Martyrtle 0:9fcda3ae181c 84 {0,0,0,0,0,1,1,0,0,0,0,0,0} //e
Martyrtle 0:9fcda3ae181c 85 }; /*!< Player second moving transition bitmap */
Martyrtle 0:9fcda3ae181c 86
Martyrtle 0:9fcda3ae181c 87 const char player_jumping[15][13]= {
Martyrtle 0:9fcda3ae181c 88 //0,1,2,3,4,5,6,7,8,9,a,b,c
Martyrtle 0:9fcda3ae181c 89 {0,0,0,1,0,0,1,0,0,0,0,0,0},//0
Martyrtle 0:9fcda3ae181c 90 {0,0,0,0,1,1,1,1,1,0,0,0,0},//1
Martyrtle 0:9fcda3ae181c 91 {0,0,0,0,1,2,2,1,1,0,0,0,0},//2
Martyrtle 0:9fcda3ae181c 92 {0,0,1,1,1,1,1,2,1,0,0,0,0},//3
Martyrtle 0:9fcda3ae181c 93 {0,1,2,2,1,2,1,2,1,1,0,0,0},//4
Martyrtle 0:9fcda3ae181c 94 {1,2,2,2,1,2,1,1,1,2,1,0,0},//5
Martyrtle 0:9fcda3ae181c 95 {1,2,2,2,1,2,2,1,1,1,2,1,0},//6
Martyrtle 0:9fcda3ae181c 96 {1,2,2,2,1,1,2,1,2,1,1,2,1},//7
Martyrtle 0:9fcda3ae181c 97 {0,1,2,2,1,2,1,1,2,1,0,1,1},//8
Martyrtle 0:9fcda3ae181c 98 {0,0,1,1,1,1,1,1,1,1,0,0,0},//9
Martyrtle 0:9fcda3ae181c 99 {0,0,0,0,1,2,2,1,2,1,0,0,0},//a
Martyrtle 0:9fcda3ae181c 100 {0,0,0,0,1,2,2,2,2,1,0,0,0},//b
Martyrtle 0:9fcda3ae181c 101 {0,0,0,0,0,1,1,1,1,0,0,0,0},//c
Martyrtle 0:9fcda3ae181c 102 {0,0,0,0,1,1,1,1,0,0,0,0,0},//d
Martyrtle 0:9fcda3ae181c 103 {0,0,0,0,0,1,1,0,0,0,0,0,0} //e
Martyrtle 0:9fcda3ae181c 104 }; /*!< Player jumping bitmap */
Martyrtle 0:9fcda3ae181c 105
Martyrtle 0:9fcda3ae181c 106 const char spike_small[5][5]= {
Martyrtle 0:9fcda3ae181c 107 //0,1,2,3,4
Martyrtle 0:9fcda3ae181c 108 {1,2,2,2,1},//0
Martyrtle 0:9fcda3ae181c 109 {1,2,2,2,1},//1
Martyrtle 0:9fcda3ae181c 110 {0,1,2,1,0},//2
Martyrtle 0:9fcda3ae181c 111 {0,1,2,1,0},//3
Martyrtle 0:9fcda3ae181c 112 {0,0,1,0,0} //4
Martyrtle 0:9fcda3ae181c 113 }; /*!< Small spike bitmap */
Martyrtle 0:9fcda3ae181c 114
Martyrtle 0:9fcda3ae181c 115 const char spike_large[8][6]= {
Martyrtle 0:9fcda3ae181c 116 //0,1,2,3,4,5
Martyrtle 0:9fcda3ae181c 117 {1,2,2,2,2,1},//0
Martyrtle 0:9fcda3ae181c 118 {1,2,2,2,2,1},//1
Martyrtle 0:9fcda3ae181c 119 {1,2,2,2,2,1},//2
Martyrtle 0:9fcda3ae181c 120 {1,2,2,2,1,0},//3
Martyrtle 0:9fcda3ae181c 121 {0,1,2,2,1,0},//4
Martyrtle 0:9fcda3ae181c 122 {0,1,2,2,1,0},//5
Martyrtle 0:9fcda3ae181c 123 {0,1,2,2,1,0},//6
Martyrtle 0:9fcda3ae181c 124 {0,0,1,1,0,0} //7
Martyrtle 0:9fcda3ae181c 125 }; /*!< Large spike bitmap */
Martyrtle 0:9fcda3ae181c 126
Martyrtle 0:9fcda3ae181c 127 const char bat_middle[7][13]= {
Martyrtle 0:9fcda3ae181c 128 //0,1,2,3,4,5,6,7,8,9,a,b,c
Martyrtle 0:9fcda3ae181c 129 {0,0,0,0,0,1,0,1,0,0,0,0,0},//0
Martyrtle 0:9fcda3ae181c 130 {0,0,0,0,0,1,1,1,0,0,0,0,0},//1
Martyrtle 0:9fcda3ae181c 131 {0,0,1,1,1,1,1,1,1,1,1,0,0},//2
Martyrtle 0:9fcda3ae181c 132 {0,0,1,1,1,1,1,1,1,1,1,0,0},//3
Martyrtle 0:9fcda3ae181c 133 {0,0,0,1,1,1,1,1,1,1,0,0,0},//4
Martyrtle 0:9fcda3ae181c 134 {0,0,0,0,1,1,1,1,1,0,0,0,0},//5
Martyrtle 0:9fcda3ae181c 135 {0,0,0,0,0,1,0,1,0,0,0,0,0} //6
Martyrtle 0:9fcda3ae181c 136 }; /*!< Bat wings flappin transition bitmap */
Martyrtle 0:9fcda3ae181c 137
Martyrtle 0:9fcda3ae181c 138 const char bat_open[7][13]= {
Martyrtle 0:9fcda3ae181c 139 //0,1,2,3,4,5,6,7,8,9,a,b,c
Martyrtle 0:9fcda3ae181c 140 {0,0,0,0,0,1,0,1,0,0,0,0,0},//0
Martyrtle 0:9fcda3ae181c 141 {0,0,0,0,0,1,1,1,0,0,0,0,0},//1
Martyrtle 0:9fcda3ae181c 142 {1,1,1,1,1,1,1,1,1,1,1,1,1},//2
Martyrtle 0:9fcda3ae181c 143 {0,1,1,1,1,1,1,1,1,1,1,1,0},//3
Martyrtle 0:9fcda3ae181c 144 {0,0,0,1,1,1,1,1,1,1,0,0,0},//4
Martyrtle 0:9fcda3ae181c 145 {0,0,0,0,1,1,1,1,1,0,0,0,0},//5
Martyrtle 0:9fcda3ae181c 146 {0,0,0,0,0,1,0,1,0,0,0,0,0} //6
Martyrtle 0:9fcda3ae181c 147 }; /*!< Bat with open wings bitmap */
Martyrtle 0:9fcda3ae181c 148
Martyrtle 0:9fcda3ae181c 149 const char bat_close[7][13]= {
Martyrtle 0:9fcda3ae181c 150 //0,1,2,3,4,5,6,7,8,9,a,b,c
Martyrtle 0:9fcda3ae181c 151 {0,0,0,0,0,1,0,1,0,0,0,0,0},//0
Martyrtle 0:9fcda3ae181c 152 {0,0,0,0,0,1,1,1,0,0,0,0,0},//1
Martyrtle 0:9fcda3ae181c 153 {0,0,0,0,1,1,1,1,1,0,0,0,0},//2
Martyrtle 0:9fcda3ae181c 154 {0,0,0,1,1,1,1,1,1,1,0,0,0},//3
Martyrtle 0:9fcda3ae181c 155 {0,0,0,1,1,1,1,1,1,1,0,0,0},//4
Martyrtle 0:9fcda3ae181c 156 {0,0,0,0,1,1,1,1,1,0,0,0,0},//5
Martyrtle 0:9fcda3ae181c 157 {0,0,0,0,0,1,0,1,0,0,0,0,0} //6
Martyrtle 0:9fcda3ae181c 158 }; /*!< Bat with closed wings bitmap */
Martyrtle 0:9fcda3ae181c 159
Martyrtle 0:9fcda3ae181c 160 const char mark_ver[5][3]= {
Martyrtle 0:9fcda3ae181c 161 //0,1,2
Martyrtle 0:9fcda3ae181c 162 {0,1,0},//0
Martyrtle 0:9fcda3ae181c 163 {0,0,1},//1
Martyrtle 0:9fcda3ae181c 164 {1,0,1},//2
Martyrtle 0:9fcda3ae181c 165 {1,0,0},//3
Martyrtle 0:9fcda3ae181c 166 {0,1,0} //4
Martyrtle 0:9fcda3ae181c 167 }; /*!< Vertical mark bitmap */
Martyrtle 0:9fcda3ae181c 168
Martyrtle 0:9fcda3ae181c 169 const char mark_hor[3][5]= {
Martyrtle 0:9fcda3ae181c 170 //0,1,2,3,4
Martyrtle 0:9fcda3ae181c 171 {0,0,1,1,0},//0
Martyrtle 0:9fcda3ae181c 172 {1,0,0,0,1},//1
Martyrtle 0:9fcda3ae181c 173 {0,1,1,0,0} //2
Martyrtle 0:9fcda3ae181c 174 }; /*!< Horizontal mark bitmap */
Martyrtle 0:9fcda3ae181c 175
Martyrtle 0:9fcda3ae181c 176 const char rocks[4][6]= {
Martyrtle 0:9fcda3ae181c 177 //0,1,2,3,4,5
Martyrtle 0:9fcda3ae181c 178 {1,2,1,2,2,1},//0
Martyrtle 0:9fcda3ae181c 179 {1,2,2,1,1,0},//1
Martyrtle 0:9fcda3ae181c 180 {0,1,2,2,1,0},//2
Martyrtle 0:9fcda3ae181c 181 {0,0,1,1,0,0} //3
Martyrtle 0:9fcda3ae181c 182 }; /*!< Rocks bitmap */
Martyrtle 0:9fcda3ae181c 183
Martyrtle 0:9fcda3ae181c 184 class Screen
Martyrtle 0:9fcda3ae181c 185 {
Martyrtle 0:9fcda3ae181c 186 public:
Martyrtle 0:9fcda3ae181c 187 /** Create a Screen object
Martyrtle 0:9fcda3ae181c 188 */
Martyrtle 0:9fcda3ae181c 189 Screen() {};
Martyrtle 0:9fcda3ae181c 190 /** Initialise Screen
Martyrtle 0:9fcda3ae181c 191 *
Martyrtle 0:9fcda3ae181c 192 * Sets all the elements in the array to 0.
Martyrtle 0:9fcda3ae181c 193 */
Martyrtle 0:9fcda3ae181c 194 void init();
Martyrtle 0:9fcda3ae181c 195 /** Set a Pixel
Martyrtle 0:9fcda3ae181c 196 *
Martyrtle 0:9fcda3ae181c 197 * This function sets a pixel in the array.
Martyrtle 0:9fcda3ae181c 198 * @param x - the x co-ordinate of the pixel (0 to 83)
Martyrtle 0:9fcda3ae181c 199 * @param y - the y co-ordinate of the pixel (0 to 47)
Martyrtle 0:9fcda3ae181c 200 * @param layer - the layer co-ordinate of the pixel (0 to 2)
Martyrtle 0:9fcda3ae181c 201 */
Martyrtle 0:9fcda3ae181c 202 void set_pixel(int x, int y, int layer);
Martyrtle 0:9fcda3ae181c 203 /** Clear a Pixel
Martyrtle 0:9fcda3ae181c 204 *
Martyrtle 0:9fcda3ae181c 205 * This function clears a pixel in the array.
Martyrtle 0:9fcda3ae181c 206 * @param x - the x co-ordinate of the pixel (0 to 83)
Martyrtle 0:9fcda3ae181c 207 * @param y - the y co-ordinate of the pixel (0 to 47)
Martyrtle 0:9fcda3ae181c 208 * @param layer - the layer co-ordinate of the pixel (0 to 2)
Martyrtle 0:9fcda3ae181c 209 */
Martyrtle 0:9fcda3ae181c 210 void clear_pixel(int x, int y, int layer);
Martyrtle 0:9fcda3ae181c 211 /** Clear a Layer
Martyrtle 0:9fcda3ae181c 212 *
Martyrtle 0:9fcda3ae181c 213 * This function clears a layer in the array.
Martyrtle 0:9fcda3ae181c 214 * @param layer - the layer co-ordinate of the pixel (0 to 2)
Martyrtle 0:9fcda3ae181c 215 */
Martyrtle 0:9fcda3ae181c 216 void clear_layer(int layer);
Martyrtle 0:9fcda3ae181c 217 /** Set a Pixel
Martyrtle 0:9fcda3ae181c 218 *
Martyrtle 0:9fcda3ae181c 219 * This function clears the array.
Martyrtle 0:9fcda3ae181c 220 */
Martyrtle 0:9fcda3ae181c 221 void clear();
Martyrtle 0:9fcda3ae181c 222 /** Draw a Layer
Martyrtle 0:9fcda3ae181c 223 *
Martyrtle 0:9fcda3ae181c 224 * This function displays a layer in the array.
Martyrtle 0:9fcda3ae181c 225 * @param layer - the layer co-ordinate of the pixel (0 to 2)
Martyrtle 0:9fcda3ae181c 226 */
Martyrtle 0:9fcda3ae181c 227 void draw_layer(int layer);
Martyrtle 0:9fcda3ae181c 228 /** Draw all Layers
Martyrtle 0:9fcda3ae181c 229 *
Martyrtle 0:9fcda3ae181c 230 * This function displays all layers in the array.
Martyrtle 0:9fcda3ae181c 231 */
Martyrtle 0:9fcda3ae181c 232 void draw();
Martyrtle 0:9fcda3ae181c 233 /** Get a Pixel
Martyrtle 0:9fcda3ae181c 234 *
Martyrtle 0:9fcda3ae181c 235 * This function gets the status of a pixel in the array.
Martyrtle 0:9fcda3ae181c 236 * @param x - the x co-ordinate of the pixel (0 to 83)
Martyrtle 0:9fcda3ae181c 237 * @param y - the y co-ordinate of the pixel (0 to 47)
Martyrtle 0:9fcda3ae181c 238 * @param layer - the layer co-ordinate of the pixel (0 to 2)
Martyrtle 0:9fcda3ae181c 239 * @returns
Martyrtle 0:9fcda3ae181c 240 * 0 - pixel is clear
Martyrtle 0:9fcda3ae181c 241 * 1 - pixel is set
Martyrtle 0:9fcda3ae181c 242 */
Martyrtle 0:9fcda3ae181c 243 bool get_pixel(int x, int y, int layer);
Martyrtle 0:9fcda3ae181c 244 char layers[48][84][3]; //[y][x][(0 is the background, 1 is the game and 2 is health)]
Martyrtle 0:9fcda3ae181c 245 };
Martyrtle 0:9fcda3ae181c 246
Martyrtle 0:9fcda3ae181c 247 class object
Martyrtle 0:9fcda3ae181c 248 {
Martyrtle 0:9fcda3ae181c 249 public:
Martyrtle 0:9fcda3ae181c 250 /** Create an object object
Martyrtle 0:9fcda3ae181c 251 */
Martyrtle 0:9fcda3ae181c 252 object() {};
Martyrtle 0:9fcda3ae181c 253 /** Create an object object with the specified width and height
Martyrtle 0:9fcda3ae181c 254 *
Martyrtle 0:9fcda3ae181c 255 * Sets the array line to be of size [height][width].
Martyrtle 0:9fcda3ae181c 256 * @param _width - the width of the object
Martyrtle 0:9fcda3ae181c 257 * @param _height - the height of the object
Martyrtle 0:9fcda3ae181c 258 *
Martyrtle 0:9fcda3ae181c 259 */
Martyrtle 0:9fcda3ae181c 260 object(int _width,int _height):width(_width),height(_height) {
Martyrtle 0:9fcda3ae181c 261 line = new char*[height];
Martyrtle 0:9fcda3ae181c 262 for(int i=0; i<height; i++) {
Martyrtle 0:9fcda3ae181c 263 line[i] = new char[width];
Martyrtle 0:9fcda3ae181c 264 }
Martyrtle 0:9fcda3ae181c 265 };
Martyrtle 0:9fcda3ae181c 266 /** Fills Line Array
Martyrtle 0:9fcda3ae181c 267 *
Martyrtle 0:9fcda3ae181c 268 * Sets the elements of the line array.
Martyrtle 0:9fcda3ae181c 269 */
Martyrtle 0:9fcda3ae181c 270 void fill(const char array[][3]);
Martyrtle 0:9fcda3ae181c 271 /** Fills Line Array
Martyrtle 0:9fcda3ae181c 272 *
Martyrtle 0:9fcda3ae181c 273 * Sets the elements of the line array.
Martyrtle 0:9fcda3ae181c 274 */
Martyrtle 0:9fcda3ae181c 275 void fill(const char array[][5]);
Martyrtle 0:9fcda3ae181c 276 /** Fills Line Array
Martyrtle 0:9fcda3ae181c 277 *
Martyrtle 0:9fcda3ae181c 278 * Sets the elements of the line array.
Martyrtle 0:9fcda3ae181c 279 */
Martyrtle 0:9fcda3ae181c 280 void fill(const char array[][6]);
Martyrtle 0:9fcda3ae181c 281 /** Fills Line Array
Martyrtle 0:9fcda3ae181c 282 *
Martyrtle 0:9fcda3ae181c 283 * Sets the elements of the line array.
Martyrtle 0:9fcda3ae181c 284 */
Martyrtle 0:9fcda3ae181c 285 void fill(const char array[][13]);
Martyrtle 0:9fcda3ae181c 286 /** Fills Line Array
Martyrtle 0:9fcda3ae181c 287 *
Martyrtle 0:9fcda3ae181c 288 * Sets the elements of the line array.
Martyrtle 0:9fcda3ae181c 289 */
Martyrtle 0:9fcda3ae181c 290 void fill(const char array[][25]);
Martyrtle 0:9fcda3ae181c 291 /** Draw Line
Martyrtle 0:9fcda3ae181c 292 *
Martyrtle 0:9fcda3ae181c 293 * This function displays the line array.
Martyrtle 0:9fcda3ae181c 294 * @param x - the x co-ordinate of the pixel (0 to 83)
Martyrtle 0:9fcda3ae181c 295 * @param y - the y co-ordinate of the pixel (0 to 47)
Martyrtle 0:9fcda3ae181c 296 */
Martyrtle 0:9fcda3ae181c 297 void draw(int x,int y);
Martyrtle 0:9fcda3ae181c 298 /** Draw Line
Martyrtle 0:9fcda3ae181c 299 *
Martyrtle 0:9fcda3ae181c 300 * This function sets the line array in a layer of the Screen.
Martyrtle 0:9fcda3ae181c 301 * @param x - the x co-ordinate of the pixel (0 to 83)
Martyrtle 0:9fcda3ae181c 302 * @param y - the y co-ordinate of the pixel (0 to 47)
Martyrtle 0:9fcda3ae181c 303 * @param layer - the layer co-ordinate of the pixel (0 to 2)
Martyrtle 0:9fcda3ae181c 304 */
Martyrtle 0:9fcda3ae181c 305 void draw_screen(int x, int y, int layer);
Martyrtle 0:9fcda3ae181c 306 /** Set Array
Martyrtle 0:9fcda3ae181c 307 *
Martyrtle 0:9fcda3ae181c 308 * Sets the array line to be of size [height][width].
Martyrtle 0:9fcda3ae181c 309 * @param _width - the width of the object
Martyrtle 0:9fcda3ae181c 310 * @param _height - the height of the object
Martyrtle 0:9fcda3ae181c 311 */
Martyrtle 0:9fcda3ae181c 312 void set(int _width,int _height);
Martyrtle 0:9fcda3ae181c 313 /** Checks Collisions
Martyrtle 0:9fcda3ae181c 314 *
Martyrtle 0:9fcda3ae181c 315 * This function checks the horizontal pixels above the object for a turned on pixel
Martyrtle 0:9fcda3ae181c 316 * @param x - the x co-ordinate of the pixel (0 to 83)
Martyrtle 0:9fcda3ae181c 317 * @param y - the y co-ordinate of the pixel (0 to 47)
Martyrtle 0:9fcda3ae181c 318 * @returns
Martyrtle 0:9fcda3ae181c 319 * 0 - no collision
Martyrtle 0:9fcda3ae181c 320 * 1 - collision
Martyrtle 0:9fcda3ae181c 321 */
Martyrtle 0:9fcda3ae181c 322 bool check_collision(int x, int y);
Martyrtle 0:9fcda3ae181c 323
Martyrtle 0:9fcda3ae181c 324 private:
Martyrtle 0:9fcda3ae181c 325 int width;
Martyrtle 0:9fcda3ae181c 326 int height;
Martyrtle 0:9fcda3ae181c 327 char **line;
Martyrtle 0:9fcda3ae181c 328 };
Martyrtle 0:9fcda3ae181c 329
Martyrtle 0:9fcda3ae181c 330 class animation
Martyrtle 0:9fcda3ae181c 331 {
Martyrtle 0:9fcda3ae181c 332 public:
Martyrtle 0:9fcda3ae181c 333 /** Create an animation object with the specified width and height and arrays to make the animation
Martyrtle 0:9fcda3ae181c 334 *
Martyrtle 0:9fcda3ae181c 335 * Sets the array line to be of size [height][width] and makes objects for each animation state.
Martyrtle 0:9fcda3ae181c 336 * @param _width - the width of the object
Martyrtle 0:9fcda3ae181c 337 * @param _height - the height of the object
Martyrtle 0:9fcda3ae181c 338 *
Martyrtle 0:9fcda3ae181c 339 */
Martyrtle 0:9fcda3ae181c 340 animation(int _width,int _height,const char _array1[][13],const char _array2[][13],const char _array3[][13]):width(_width),height(_height) {
Martyrtle 0:9fcda3ae181c 341 state1.set(width,height);
Martyrtle 0:9fcda3ae181c 342 state2.set(width,height);
Martyrtle 0:9fcda3ae181c 343 state3.set(width,height);
Martyrtle 0:9fcda3ae181c 344 state1.fill(_array1);
Martyrtle 0:9fcda3ae181c 345 state2.fill(_array2);
Martyrtle 0:9fcda3ae181c 346 state3.fill(_array3);
Martyrtle 0:9fcda3ae181c 347 state = 0;
Martyrtle 0:9fcda3ae181c 348 next = 0;
Martyrtle 0:9fcda3ae181c 349 divider = 2;
Martyrtle 0:9fcda3ae181c 350 counter = 0;
Martyrtle 0:9fcda3ae181c 351 }
Martyrtle 0:9fcda3ae181c 352 /** Draw State
Martyrtle 0:9fcda3ae181c 353 *
Martyrtle 0:9fcda3ae181c 354 * This function displays the state.
Martyrtle 0:9fcda3ae181c 355 * @param x - the x co-ordinate of the pixel (0 to 83)
Martyrtle 0:9fcda3ae181c 356 * @param y - the y co-ordinate of the pixel (0 to 47)
Martyrtle 0:9fcda3ae181c 357 */
Martyrtle 0:9fcda3ae181c 358 void draw(int x,int y);
Martyrtle 0:9fcda3ae181c 359 /** Draw State
Martyrtle 0:9fcda3ae181c 360 *
Martyrtle 0:9fcda3ae181c 361 * This function sets the state in a layer of the Screen.
Martyrtle 0:9fcda3ae181c 362 * @param x - the x co-ordinate of the pixel (0 to 83)
Martyrtle 0:9fcda3ae181c 363 * @param y - the y co-ordinate of the pixel (0 to 47)
Martyrtle 0:9fcda3ae181c 364 * @param layer - the layer co-ordinate of the pixel (0 to 2)
Martyrtle 0:9fcda3ae181c 365 */
Martyrtle 0:9fcda3ae181c 366 void draw_screen(int x, int y, int layer);
Martyrtle 0:9fcda3ae181c 367 char counter;
Martyrtle 0:9fcda3ae181c 368 char state;
Martyrtle 0:9fcda3ae181c 369 char next;
Martyrtle 0:9fcda3ae181c 370
Martyrtle 0:9fcda3ae181c 371 private:
Martyrtle 0:9fcda3ae181c 372 int width;
Martyrtle 0:9fcda3ae181c 373 int height;
Martyrtle 0:9fcda3ae181c 374 object state1;
Martyrtle 0:9fcda3ae181c 375 object state2;
Martyrtle 0:9fcda3ae181c 376 object state3;
Martyrtle 0:9fcda3ae181c 377 char divider;
Martyrtle 0:9fcda3ae181c 378 };
Martyrtle 0:9fcda3ae181c 379
Martyrtle 0:9fcda3ae181c 380 class Background
Martyrtle 0:9fcda3ae181c 381 {
Martyrtle 0:9fcda3ae181c 382 public:
Martyrtle 0:9fcda3ae181c 383 /** Create a Background object and initialises the objects used in it
Martyrtle 0:9fcda3ae181c 384 */
Martyrtle 0:9fcda3ae181c 385 Background() {
Martyrtle 0:9fcda3ae181c 386 //Objects
Martyrtle 0:9fcda3ae181c 387 mark_ver_obj.set(3,5);
Martyrtle 0:9fcda3ae181c 388 mark_hor_obj.set(5,3);
Martyrtle 0:9fcda3ae181c 389 rocks_obj.set(6,4);
Martyrtle 0:9fcda3ae181c 390 mark_ver_obj.fill(mark_ver);
Martyrtle 0:9fcda3ae181c 391 mark_hor_obj.fill(mark_hor);
Martyrtle 0:9fcda3ae181c 392 rocks_obj.fill(rocks);
Martyrtle 0:9fcda3ae181c 393 counter=0;
Martyrtle 0:9fcda3ae181c 394 };
Martyrtle 0:9fcda3ae181c 395 char wall[48][84];
Martyrtle 0:9fcda3ae181c 396 char counter;
Martyrtle 0:9fcda3ae181c 397 /** Initialise Background
Martyrtle 0:9fcda3ae181c 398 *
Martyrtle 0:9fcda3ae181c 399 * Sets all the elements in the array to 0.
Martyrtle 0:9fcda3ae181c 400 * draws the objects into the array.
Martyrtle 0:9fcda3ae181c 401 */
Martyrtle 0:9fcda3ae181c 402 void init();
Martyrtle 0:9fcda3ae181c 403 /** Fill Background
Martyrtle 0:9fcda3ae181c 404 *
Martyrtle 0:9fcda3ae181c 405 * Sets all the elements in the array to the elements from the Screen.
Martyrtle 0:9fcda3ae181c 406 */
Martyrtle 0:9fcda3ae181c 407 void fill(char array[48][84][3]);
Martyrtle 0:9fcda3ae181c 408 /** Draw Background
Martyrtle 0:9fcda3ae181c 409 *
Martyrtle 0:9fcda3ae181c 410 * This function displays the array.
Martyrtle 0:9fcda3ae181c 411 */
Martyrtle 0:9fcda3ae181c 412 void draw();
Martyrtle 0:9fcda3ae181c 413 /** Draw Screen
Martyrtle 0:9fcda3ae181c 414 *
Martyrtle 0:9fcda3ae181c 415 * This function sets the array to the BG sub-array.
Martyrtle 0:9fcda3ae181c 416 * @param layer - the layer co-ordinate of the pixel (0 to 2)
Martyrtle 0:9fcda3ae181c 417 */
Martyrtle 0:9fcda3ae181c 418 void draw_screen(int layer);
Martyrtle 0:9fcda3ae181c 419
Martyrtle 0:9fcda3ae181c 420 private:
Martyrtle 0:9fcda3ae181c 421 object mark_ver_obj;
Martyrtle 0:9fcda3ae181c 422 object mark_hor_obj;
Martyrtle 0:9fcda3ae181c 423 object rocks_obj;
Martyrtle 0:9fcda3ae181c 424 };
Martyrtle 0:9fcda3ae181c 425
Martyrtle 0:9fcda3ae181c 426 #endif