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-25
- Revision:
- 8:9bc80e40ac0d
- Parent:
- 7:c6e6ec0e3396
- Child:
- 9:f16581e1eba9
File content as of revision 8:9bc80e40ac0d:
#include "Minerengine.h"
Minerengine::Minerengine()
{
}
Minerengine::~Minerengine()
{
}
void Minerengine::miner_init()
{
_x = 3;
_y = 33;
}
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;
}
x = _x;
}
void Minerengine::miner_jump(N5110 &lcd, Gamepad &pad)
{
if(_d==3 && pad.check_event(Gamepad::A_PRESSED) && lcd.getPixel(_x + 3, _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) && !lcd.getPixel(_x + 3, _y + 8)) {
_y = _y + 1;
wait(0.1);
}
}