ELEC2645 (2017/18) / Mbed OS el16ajm
Committer:
Andrew_M
Date:
Sun Apr 29 14:59:14 2018 +0000
Revision:
4:6353f829c56c
Parent:
3:6253a2d374fa
Child:
5:a3a9e0417e04
Snake now has a tail that follows it, max length 100

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 3:6253a2d374fa 15 memset(_grid, 0, sizeof(_grid));
Andrew_M 3:6253a2d374fa 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 }
Andrew_M 1:a14415de3ad5 24
Andrew_M 1:a14415de3ad5 25 void Engine::draw(N5110 &lcd)
Andrew_M 1:a14415de3ad5 26 {
Andrew_M 2:9ca5e1c221c3 27 lcd.drawRect(0,0,48,48,FILL_TRANSPARENT);
Andrew_M 2:9ca5e1c221c3 28 for (int j = 0; j < 22; j++) {
Andrew_M 2:9ca5e1c221c3 29 for (int i = 0; i < 22; i++) {
Andrew_M 2:9ca5e1c221c3 30 if (_grid[i][j] != 0) {
Andrew_M 4:6353f829c56c 31 lcd.drawRect((2 * i) + 2,(2 * j) + 2,2,2,FILL_BLACK);
Andrew_M 2:9ca5e1c221c3 32 }
Andrew_M 2:9ca5e1c221c3 33 }
Andrew_M 2:9ca5e1c221c3 34 }
Andrew_M 1:a14415de3ad5 35 }
Andrew_M 1:a14415de3ad5 36
Andrew_M 1:a14415de3ad5 37 void Engine::update(Gamepad &pad)
Andrew_M 1:a14415de3ad5 38 {
Andrew_M 3:6253a2d374fa 39 memset(_grid, 0, sizeof(_grid));
Andrew_M 3:6253a2d374fa 40
Andrew_M 3:6253a2d374fa 41 _solid.update(_d);
Andrew_M 3:6253a2d374fa 42
Andrew_M 4:6353f829c56c 43 int _l =_solid.getLength();
Andrew_M 3:6253a2d374fa 44
Andrew_M 4:6353f829c56c 45 for (int i = _l; i >= 1; i--) {
Andrew_M 4:6353f829c56c 46 _grid[_solid.getX(i)][_solid.getY(i)] = 1;
Andrew_M 4:6353f829c56c 47 }
Andrew_M 1:a14415de3ad5 48 }