ERROR: no pinta los enemigos

This commit is contained in:
2022-07-04 18:01:21 +02:00
parent 4be611e0e4
commit b65c425c84
10 changed files with 367 additions and 80 deletions

View File

@@ -1,11 +1,66 @@
#include "enemy.h"
#include <fstream>
#include <sstream>
// Constructor
Enemy::Enemy()
Enemy::Enemy(enemy_t enemy)
{
// Obten punteros a objetos
asset = enemy.asset;
renderer = enemy.renderer;
// Crea objetos
texture = new LTexture();
sprite = new AnimatedSprite();
// Carga la textura
loadTextureFromFile(texture, asset->get(enemy.tileset), renderer);
// Obten el resto de valores
x1 = enemy.x1;
x2 = enemy.x2;
y1 = enemy.y1;
y2 = enemy.y2;
color = enemy.color;
sprite->setPosX(enemy.x);
sprite->setPosY(enemy.y);
sprite->setVelX(enemy.vx);
sprite->setVelY(enemy.vy);
// Inicializa el sprite con el resto de parametros comunes
sprite->setWidth(16);
sprite->setHeight(16);
sprite->setCurrentFrame(0);
sprite->setAnimationCounter(0);
sprite->setAnimationNumFrames(0, 4);
sprite->setAnimationSpeed(0, 10);
sprite->setAnimationLoop(0, true);
sprite->setAnimationFrames(0, 0, 16 * 0, 0, 16, 16);
sprite->setAnimationFrames(0, 1, 16 * 1, 0, 16, 16);
sprite->setAnimationFrames(0, 2, 16 * 2, 0, 16, 16);
sprite->setAnimationFrames(0, 3, 16 * 3, 0, 16, 16);
sprite->setSpriteClip(sprite->getAnimationClip(0, 0));
}
// Destructor
Enemy::~Enemy()
{
texture->unload();
delete texture;
texture = nullptr;
delete sprite;
sprite = nullptr;
}
// Pinta el enemigo en pantalla
void Enemy::draw()
{
sprite->render();
}
// Actualiza las variables del objeto
void Enemy::update()
{
sprite->update();
}