Renombradas las variables de bullet.cpp

This commit is contained in:
2022-10-04 18:11:42 +02:00
parent 33b7c6082e
commit adad58ccfa
5 changed files with 69 additions and 66 deletions

View File

@@ -328,7 +328,7 @@ void Balloon::render()
{ {
mSprite->render(); mSprite->render();
if (mKind == POWER_BALL) if (mKind == POWER_BALL and !mPopping)
{ {
Sprite *sp = new Sprite(mSprite->getRect(), mSprite->getTexture(), mSprite->getRenderer()); Sprite *sp = new Sprite(mSprite->getRect(), mSprite->getTexture(), mSprite->getRenderer());
sp->setSpriteClip(370, 148, 37, 37); sp->setSpriteClip(370, 148, 37, 37);

View File

@@ -4,70 +4,70 @@
// Constructor // Constructor
Bullet::Bullet(int x, int y, int kind, bool poweredUp, int owner, LTexture *texture, SDL_Renderer *renderer) Bullet::Bullet(int x, int y, int kind, bool poweredUp, int owner, LTexture *texture, SDL_Renderer *renderer)
{ {
mSprite = new Sprite({x, y, 10, 10}, texture, renderer); sprite = new Sprite({x, y, 10, 10}, texture, renderer);
// Posición inicial del objeto // Posición inicial del objeto
mPosX = x; posX = x;
mPosY = y; posY = y;
// Alto y ancho del objeto // Alto y ancho del objeto
mWidth = 10; width = 10;
mHeight = 10; height = 10;
// Velocidad inicial en el eje Y // Velocidad inicial en el eje Y
mVelY = -3; velY = -3;
// Tipo de bala // Tipo de bala
mKind = kind; this->kind = kind;
// Identificador del dueño del objeto // Identificador del dueño del objeto
mOwner = owner; this->owner = owner;
// Valores especificos según el tipo // Valores especificos según el tipo
switch (kind) switch (kind)
{ {
case BULLET_UP: case BULLET_UP:
// Establece la velocidad inicial // Establece la velocidad inicial
mVelX = 0; velX = 0;
// Rectangulo con los gráficos del objeto // Rectangulo con los gráficos del objeto
if (!poweredUp) if (!poweredUp)
{ {
mSprite->setSpriteClip(0 * mWidth, 0, mSprite->getWidth(), mSprite->getHeight()); sprite->setSpriteClip(0 * width, 0, sprite->getWidth(), sprite->getHeight());
} }
else else
{ {
mSprite->setSpriteClip((0 + 3) * mWidth, 0, mSprite->getWidth(), mSprite->getHeight()); sprite->setSpriteClip((0 + 3) * width, 0, sprite->getWidth(), sprite->getHeight());
} }
break; break;
case BULLET_LEFT: case BULLET_LEFT:
// Establece la velocidad inicial // Establece la velocidad inicial
mVelX = -2; velX = -2;
// Rectangulo con los gráficos del objeto // Rectangulo con los gráficos del objeto
if (!poweredUp) if (!poweredUp)
{ {
mSprite->setSpriteClip(1 * mWidth, 0, mSprite->getWidth(), mSprite->getHeight()); sprite->setSpriteClip(1 * width, 0, sprite->getWidth(), sprite->getHeight());
} }
else else
{ {
mSprite->setSpriteClip((1 + 3) * mWidth, 0, mSprite->getWidth(), mSprite->getHeight()); sprite->setSpriteClip((1 + 3) * width, 0, sprite->getWidth(), sprite->getHeight());
} }
break; break;
case BULLET_RIGHT: case BULLET_RIGHT:
// Establece la velocidad inicial // Establece la velocidad inicial
mVelX = 2; velX = 2;
// Rectangulo con los gráficos del objeto // Rectangulo con los gráficos del objeto
if (!poweredUp) if (!poweredUp)
{ {
mSprite->setSpriteClip(2 * mWidth, 0, mSprite->getWidth(), mSprite->getHeight()); sprite->setSpriteClip(2 * width, 0, sprite->getWidth(), sprite->getHeight());
} }
else else
{ {
mSprite->setSpriteClip((2 + 3) * mWidth, 0, mSprite->getWidth(), mSprite->getHeight()); sprite->setSpriteClip((2 + 3) * width, 0, sprite->getWidth(), sprite->getHeight());
} }
break; break;
@@ -76,7 +76,7 @@ Bullet::Bullet(int x, int y, int kind, bool poweredUp, int owner, LTexture *text
} }
// Establece el tamaño del circulo de colisión // Establece el tamaño del circulo de colisión
mCollider.r = mWidth / 2; collider.r = width / 2;
// Alinea el circulo de colisión con el objeto // Alinea el circulo de colisión con el objeto
shiftColliders(); shiftColliders();
@@ -85,13 +85,13 @@ Bullet::Bullet(int x, int y, int kind, bool poweredUp, int owner, LTexture *text
// Destructor // Destructor
Bullet::~Bullet() Bullet::~Bullet()
{ {
delete mSprite; delete sprite;
} }
// Pinta el objeto en pantalla // Pinta el objeto en pantalla
void Bullet::render() void Bullet::render()
{ {
mSprite->render(); sprite->render();
} }
// Actualiza la posición y estado del objeto en horizontal // Actualiza la posición y estado del objeto en horizontal
@@ -101,34 +101,34 @@ Uint8 Bullet::move()
Uint8 msg = BULLET_MOVE_OK; Uint8 msg = BULLET_MOVE_OK;
// Mueve el objeto a su nueva posición // Mueve el objeto a su nueva posición
mPosX += mVelX; posX += velX;
// Si el objeto se sale del area de juego por los laterales // Si el objeto se sale del area de juego por los laterales
if ((mPosX < PLAY_AREA_LEFT) || (mPosX + mWidth > PLAY_AREA_RIGHT)) if ((posX < PLAY_AREA_LEFT) || (posX + width > PLAY_AREA_RIGHT))
{ {
// Se deshabilita // Se deshabilita
mKind = NO_KIND; kind = NO_KIND;
// Mensaje de salida // Mensaje de salida
msg = BULLET_MOVE_OUT; msg = BULLET_MOVE_OUT;
} }
// Mueve el objeto a su nueva posición en vertical // Mueve el objeto a su nueva posición en vertical
mPosY += int(mVelY); posY += int(velY);
// Si el objeto se sale del area de juego por la parte superior o inferior // Si el objeto se sale del area de juego por la parte superior o inferior
if ((mPosY < PLAY_AREA_TOP) || (mPosY + mHeight > PLAY_AREA_BOTTOM)) if ((posY < PLAY_AREA_TOP) || (posY + height > PLAY_AREA_BOTTOM))
{ {
// Se deshabilita // Se deshabilita
mKind = NO_KIND; kind = NO_KIND;
// Mensaje de salida // Mensaje de salida
msg = BULLET_MOVE_OUT; msg = BULLET_MOVE_OUT;
} }
// Actualiza la posición del sprite // Actualiza la posición del sprite
mSprite->setPosX(mPosX); sprite->setPosX(posX);
mSprite->setPosY(mPosY); sprite->setPosY(posY);
// Alinea el circulo de colisión con el objeto // Alinea el circulo de colisión con el objeto
shiftColliders(); shiftColliders();
@@ -136,10 +136,10 @@ Uint8 Bullet::move()
return msg; return msg;
} }
// Comprueba si el objeto está activo // Comprueba si el objeto está habilitado
bool Bullet::isActive() bool Bullet::isEnabled()
{ {
if (mKind == NO_KIND) if (kind == NO_KIND)
{ {
return false; return false;
} }
@@ -149,63 +149,63 @@ bool Bullet::isActive()
} }
} }
// Desactiva el objeto // Deshabilita el objeto
void Bullet::deactivate() void Bullet::disable()
{ {
mKind = NO_KIND; kind = NO_KIND;
} }
// Obtiene el valor de la variable // Obtiene el valor de la variable
int Bullet::getPosX() int Bullet::getPosX()
{ {
return mPosX; return posX;
} }
// Obtiene el valor de la variable // Obtiene el valor de la variable
int Bullet::getPosY() int Bullet::getPosY()
{ {
return mPosY; return posY;
} }
// Establece el valor de la variable // Establece el valor de la variable
void Bullet::setPosX(int x) void Bullet::setPosX(int x)
{ {
mPosX = x; posX = x;
} }
// Establece el valor de la variable // Establece el valor de la variable
void Bullet::setPosY(int y) void Bullet::setPosY(int y)
{ {
mPosY = y; posY = y;
} }
// Obtiene el valor de la variable // Obtiene el valor de la variable
int Bullet::getVelY() int Bullet::getVelY()
{ {
return mVelY; return velY;
} }
// Obtiene el valor de la variable // Obtiene el valor de la variable
int Bullet::getKind() int Bullet::getKind()
{ {
return mKind; return kind;
} }
// Obtiene el valor de la variable // Obtiene el valor de la variable
int Bullet::getOwner() int Bullet::getOwner()
{ {
return mOwner; return owner;
} }
// Obtiene el circulo de colisión // Obtiene el circulo de colisión
circle_t &Bullet::getCollider() circle_t &Bullet::getCollider()
{ {
return mCollider; return collider;
} }
// Alinea el circulo de colisión con el objeto // Alinea el circulo de colisión con el objeto
void Bullet::shiftColliders() void Bullet::shiftColliders()
{ {
mCollider.x = mPosX + mCollider.r; collider.x = posX + collider.r;
mCollider.y = mPosY + mCollider.r; collider.y = posY + collider.r;
} }

View File

@@ -20,16 +20,19 @@
class Bullet class Bullet
{ {
private: private:
int mPosX; // Posición en el eje X // Objetos
int mPosY; // Posición en el eje Y Sprite *sprite; // Sprite con los graficos y métodos de pintado
Uint8 mWidth; // Ancho del objeto
Uint8 mHeight; // Alto del objeto // Variables
int mVelX; // Velocidad en el eje X int posX; // Posición en el eje X
int mVelY; // Velocidad en el eje Y int posY; // Posición en el eje Y
int mKind; // Tipo de objeto Uint8 width; // Ancho del objeto
int mOwner; // Identificador del dueño del objeto Uint8 height; // Alto del objeto
Sprite *mSprite; // Sprite con los graficos y métodos de pintado int velX; // Velocidad en el eje X
circle_t mCollider; // Circulo de colisión del objeto int velY; // Velocidad en el eje Y
int kind; // Tipo de objeto
int owner; // Identificador del dueño del objeto
circle_t collider; // Circulo de colisión del objeto
// Alinea el circulo de colisión con el objeto // Alinea el circulo de colisión con el objeto
void shiftColliders(); void shiftColliders();
@@ -47,11 +50,11 @@ public:
// Actualiza la posición y estado del objeto // Actualiza la posición y estado del objeto
Uint8 move(); Uint8 move();
// Comprueba si el objeto está activo // Comprueba si el objeto está habilitado
bool isActive(); bool isEnabled();
// Desactiva el objeto // Deshabilita el objeto
void deactivate(); void disable();
// Obtiene el valor de la variable // Obtiene el valor de la variable
int getPosX(); int getPosX();

View File

@@ -2187,7 +2187,7 @@ void Game::checkBulletBalloonCollision()
{ {
for (auto balloon : balloons) for (auto balloon : balloons)
{ {
if (balloon->isEnabled() && (!balloon->isInvulnerable()) && bullet->isActive()) if (balloon->isEnabled() && (!balloon->isInvulnerable()) && bullet->isEnabled())
{ {
if (checkCollision(balloon->getCollider(), bullet->getCollider())) if (checkCollision(balloon->getCollider(), bullet->getCollider()))
{ {
@@ -2206,8 +2206,8 @@ void Game::checkBulletBalloonCollision()
JA_PlaySound(mSoundBalloon); JA_PlaySound(mSoundBalloon);
} }
// Desactiva la bala // Deshabilita la bala
bullet->deactivate(); bullet->disable();
// Suelta el item en caso de que salga uno // Suelta el item en caso de que salga uno
const Uint8 droppeditem = dropItem(); const Uint8 droppeditem = dropItem();
@@ -2237,7 +2237,7 @@ void Game::moveBullets()
{ {
for (auto bullet : bullets) for (auto bullet : bullets)
{ {
if (bullet->isActive()) if (bullet->isEnabled())
{ {
if (bullet->move() == BULLET_MOVE_OUT) if (bullet->move() == BULLET_MOVE_OUT)
{ {
@@ -2252,7 +2252,7 @@ void Game::renderBullets()
{ {
for (auto bullet : bullets) for (auto bullet : bullets)
{ {
if (bullet->isActive()) if (bullet->isEnabled())
{ {
bullet->render(); bullet->render();
} }
@@ -2273,7 +2273,7 @@ void Game::freeBullets()
{ {
for (int i = bullets.size() - 1; i >= 0; --i) for (int i = bullets.size() - 1; i >= 0; --i)
{ {
if (bullets.at(i)->isActive() == false) if (bullets.at(i)->isEnabled() == false)
{ {
delete bullets.at(i); delete bullets.at(i);
bullets.erase(bullets.begin() + i); bullets.erase(bullets.begin() + i);

View File

@@ -2,7 +2,7 @@ los items se quedan pegados en el techo
la maquina de cafe no toca el suelo la maquina de cafe no toca el suelo
las bolas verdes nacen naranja al explotarlas las bolas verdes nacen naranja al explotarlas
falta el aura de superguerrero al pillar la maquina de cafe falta el aura de superguerrero al pillar la maquina de cafe
la powerball deja la mascara al explotarlas x la powerball deja la mascara al explotarlas
los menus de pausa y game over falta poner bien los textos los menus de pausa y game over falta poner bien los textos
cuando continuas la partida sigues muerto cuando continuas la partida sigues muerto
poder elegir el personaje para jugar poder elegir el personaje para jugar