ELEC2645 (2017/18) / Mbed OS el16ajm
Committer:
Andrew_M
Date:
Mon Apr 16 10:55:00 2018 +0000
Revision:
2:9ca5e1c221c3
Parent:
1:a14415de3ad5
Child:
3:6253a2d374fa
Basic drawing of the game works, snake is currently incorrectly drawn. Overall skeleton of the software is done but not much more

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Andrew_M 1:a14415de3ad5 1 #include "Engine.h"
Andrew_M 1:a14415de3ad5 2
Andrew_M 1:a14415de3ad5 3 Engine::Engine()
Andrew_M 1:a14415de3ad5 4 {
Andrew_M 1:a14415de3ad5 5
Andrew_M 1:a14415de3ad5 6 }
Andrew_M 1:a14415de3ad5 7
Andrew_M 1:a14415de3ad5 8 Engine::~Engine()
Andrew_M 1:a14415de3ad5 9 {
Andrew_M 1:a14415de3ad5 10
Andrew_M 1:a14415de3ad5 11 }
Andrew_M 1:a14415de3ad5 12
Andrew_M 2:9ca5e1c221c3 13 void Engine::init() // initialise the game parameters
Andrew_M 1:a14415de3ad5 14 {
Andrew_M 2:9ca5e1c221c3 15 memset(_grid, 0, sizeof(_grid));
Andrew_M 2:9ca5e1c221c3 16
Andrew_M 2:9ca5e1c221c3 17 _solid.init(3,5);
Andrew_M 1:a14415de3ad5 18 }
Andrew_M 1:a14415de3ad5 19
Andrew_M 1:a14415de3ad5 20 void Engine::read_input(Gamepad &pad)
Andrew_M 1:a14415de3ad5 21 {
Andrew_M 1:a14415de3ad5 22 _d = pad.get_direction();
Andrew_M 1:a14415de3ad5 23 _mag = pad.get_mag();
Andrew_M 1:a14415de3ad5 24 }
Andrew_M 1:a14415de3ad5 25
Andrew_M 1:a14415de3ad5 26 void Engine::draw(N5110 &lcd)
Andrew_M 1:a14415de3ad5 27 {
Andrew_M 2:9ca5e1c221c3 28 lcd.drawRect(0,0,48,48,FILL_TRANSPARENT);
Andrew_M 2:9ca5e1c221c3 29 for (int j = 0; j < 22; j++) {
Andrew_M 2:9ca5e1c221c3 30 for (int i = 0; i < 22; i++) {
Andrew_M 2:9ca5e1c221c3 31 if (_grid[i][j] != 0) {
Andrew_M 2:9ca5e1c221c3 32 lcd.drawRect(2 * i + 1,2 * j + 1,2,2,FILL_BLACK);
Andrew_M 2:9ca5e1c221c3 33 }
Andrew_M 2:9ca5e1c221c3 34 }
Andrew_M 2:9ca5e1c221c3 35 }
Andrew_M 1:a14415de3ad5 36 }
Andrew_M 1:a14415de3ad5 37
Andrew_M 1:a14415de3ad5 38 void Engine::update(Gamepad &pad)
Andrew_M 1:a14415de3ad5 39 {
Andrew_M 2:9ca5e1c221c3 40 memset(_grid, 0, sizeof(_grid));
Andrew_M 2:9ca5e1c221c3 41
Andrew_M 2:9ca5e1c221c3 42 //_grid[3][5] = 1;
Andrew_M 2:9ca5e1c221c3 43
Andrew_M 2:9ca5e1c221c3 44 int tempX = _solid.getX();
Andrew_M 2:9ca5e1c221c3 45 int tempY = _solid.getY();
Andrew_M 2:9ca5e1c221c3 46 _grid[tempX][tempY] = 1;
Andrew_M 1:a14415de3ad5 47 }