ELEC2645 (2017/18) / Mbed OS el16ajm
Committer:
Andrew_M
Date:
Sun Apr 29 14:19:38 2018 +0000
Revision:
3:6253a2d374fa
Parent:
2:9ca5e1c221c3
Child:
4:6353f829c56c
Snake head now moves across screen, remembers the direction it moved in before so it continues moving without user input

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 2:9ca5e1c221c3 31 lcd.drawRect(2 * i + 1,2 * j + 1,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
Andrew_M 3:6253a2d374fa 42 _solid.update(_d);
Andrew_M 3:6253a2d374fa 43
Andrew_M 2:9ca5e1c221c3 44 int tempX = _solid.getX();
Andrew_M 2:9ca5e1c221c3 45 int tempY = _solid.getY();
Andrew_M 3:6253a2d374fa 46
Andrew_M 2:9ca5e1c221c3 47 _grid[tempX][tempY] = 1;
Andrew_M 1:a14415de3ad5 48 }