diff --git a/data/room/01.room b/data/room/01.room index c28abee..04cc1e2 100644 --- a/data/room/01.room +++ b/data/room/01.room @@ -6,29 +6,32 @@ room_up=0 room_down=0 room_left=0 room_right=02.room -tilemap=41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,41,41,41,41,41,41,41,41,41,41,41,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,41,41,41,41,0,0,0,0,0,0,0,0,0,0,0,41,41,41,41,41,41,41,41,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,41,41,0,0,0,0,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41 +tilemap=41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,41,41,41,41,41,41,41,41,41,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,41,41,41,41,41,0,0,0,0,0,0,0,0,0,81,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,41,41,41,41,0,0,0,0,0,0,0,0,0,0,0,41,41,41,41,41,41,41,41,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,0,0,41,41,0,0,0,0,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41 + [enemy] tileset=enemy01.png x=8 y=0 vx=0 -vy=0.2 +vy=0.3 x1=8 x2=8 y1=0 y2=48 color=red [enemy-end] + [enemy] tileset=enemy01.png -x=56 +x=40 y=72 -vx=0.2 +vx=0.3 vy=0 -x1=49 -x2=154 +x1=40 +x2=184 y1=72 y2=72 color=yellow [enemy-end] + item=1,10,10 \ No newline at end of file diff --git a/source/enemy.cpp b/source/enemy.cpp index ff07563..893f389 100644 --- a/source/enemy.cpp +++ b/source/enemy.cpp @@ -56,9 +56,9 @@ Enemy::~Enemy() // Pinta el enemigo en pantalla void Enemy::draw() { - sprite->getTexture()->setColor(color.r, color.g, color.b); + sprite->getTexture()->setColor(color.r, color.g, color.b); sprite->render(); - sprite->getTexture()->setColor(255, 255, 255); + sprite->getTexture()->setColor(255, 255, 255); } // Actualiza las variables del objeto @@ -66,4 +66,21 @@ void Enemy::update() { sprite->update(); sprite->animate(0); + checkPath(); +} + +// Comprueba si ha llegado al limite del recorrido para darse media vuelta +void Enemy::checkPath() +{ + if (sprite->getPosX() > x2 || sprite->getPosX() < x1) + { + //sprite->setPosX(sprite->getPosX() - sprite->getVelX()); + sprite->setVelX(sprite->getVelX() * (-1)); + } + + if (sprite->getPosY() > y2 || sprite->getPosY() < y1) + { + //sprite->setPosY(sprite->getPosY() - sprite->getVelY()); + sprite->setVelY(sprite->getVelY() * (-1)); + } } \ No newline at end of file diff --git a/source/enemy.h b/source/enemy.h index f23c37c..ca6ebbe 100644 --- a/source/enemy.h +++ b/source/enemy.h @@ -55,6 +55,9 @@ private: int y1; // Limite superior de la ruta en el eje Y int y2; // Limite inferior de la ruta en el eje Y + // Comprueba si ha llegado al limite del recorrido para darse media vuelta + void checkPath(); + public: // Constructor Enemy(enemy_t enemy);