Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Minerengine.cpp
- Committer:
- el17arm
- Date:
- 2019-03-22
- Revision:
- 6:866281ce2b44
- Parent:
- 4:b92da6a09c8b
- Child:
- 7:c6e6ec0e3396
File content as of revision 6:866281ce2b44:
#include "Minerengine.h"
Minerengine::Minerengine()
{
_x = 3;
_y = 33;
}
Minerengine::~Minerengine()
{
}
void Minerengine::read_direction(Gamepad &pad)
{
_d = pad.get_direction();
printf("direction %i \n", _d);
}
void Minerengine::miner_move(N5110 &lcd, Gamepad &pad)
{
if (_d==3 && !lcd.getPixel(_x + 3, _y+1) && !lcd.getPixel(_x + 3, _y + 3) &&
!lcd.getPixel(_x + 3, _y + 5) && !lcd.getPixel(_x + 3, _y + 7)) {
_x += 1;
_direction = 1;
}
if (_d==7 && !lcd.getPixel(_x - 1, _y+1) && !lcd.getPixel(_x - 1, _y + 3) &&
!lcd.getPixel(_x - 1, _y + 5)&& !lcd.getPixel(_x + 3, _y + 7)) {
_x = _x - 1;
_direction = 0;
}
}
void Minerengine::miner_jump(N5110 &lcd, Gamepad &pad)
{
if(_d==3 && pad.check_event(Gamepad::A_PRESSED) && lcd.getPixel(_x, _y + 8)) {
for (int i = 0; i < 6; i++) {
_y = _y -1;
if(lcd.getPixel(_x, _y) || lcd.getPixel(_x, _y + 7) ||
lcd.getPixel(_x + 3, _y + 7)) {
i = 6;
}
}
}
if(_d==7 && pad.check_event(Gamepad::A_PRESSED) && lcd.getPixel(_x, _y + 8)) {
for (int i = 0; i < 6; i++) {
_y = _y -1;
if(lcd.getPixel(_x, _y) || lcd.getPixel(_x+2, _y + 7) ||
lcd.getPixel(_x, _y + 7)) {
i = 6;
}
}
}
if(_d==0 && pad.check_event(Gamepad::A_PRESSED) && lcd.getPixel(_x, _y + 8)) {
for (int i = 0; i < 6; i++) {
_y = _y -1;
if(lcd.getPixel(_x, _y) || lcd.getPixel(_x + 2, _y + 7)
|| lcd.getPixel(_x, _y + 7)) {
i = 6;
}
}
}
}
void Minerengine::miner_draw(N5110 &lcd)
{
if (_direction == 1) {
lcd.drawSprite(_x,_y,8,3,(int *)miner_right);
}
if (_direction == 0) {
lcd.drawSprite(_x,_y,8,3,(int *)miner_left);
}
}
void Minerengine::miner_gravity(N5110 &lcd)
{
if(!lcd.getPixel(_x, _y + 8)) {
_y = _y + 1;
}
}