Renombradas las variables de bullet.cpp
This commit is contained in:
@@ -328,7 +328,7 @@ void Balloon::render()
|
||||
{
|
||||
mSprite->render();
|
||||
|
||||
if (mKind == POWER_BALL)
|
||||
if (mKind == POWER_BALL and !mPopping)
|
||||
{
|
||||
Sprite *sp = new Sprite(mSprite->getRect(), mSprite->getTexture(), mSprite->getRenderer());
|
||||
sp->setSpriteClip(370, 148, 37, 37);
|
||||
|
||||
@@ -4,70 +4,70 @@
|
||||
// Constructor
|
||||
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
|
||||
mPosX = x;
|
||||
mPosY = y;
|
||||
posX = x;
|
||||
posY = y;
|
||||
|
||||
// Alto y ancho del objeto
|
||||
mWidth = 10;
|
||||
mHeight = 10;
|
||||
width = 10;
|
||||
height = 10;
|
||||
|
||||
// Velocidad inicial en el eje Y
|
||||
mVelY = -3;
|
||||
velY = -3;
|
||||
|
||||
// Tipo de bala
|
||||
mKind = kind;
|
||||
this->kind = kind;
|
||||
|
||||
// Identificador del dueño del objeto
|
||||
mOwner = owner;
|
||||
this->owner = owner;
|
||||
|
||||
// Valores especificos según el tipo
|
||||
switch (kind)
|
||||
{
|
||||
case BULLET_UP:
|
||||
// Establece la velocidad inicial
|
||||
mVelX = 0;
|
||||
velX = 0;
|
||||
|
||||
// Rectangulo con los gráficos del objeto
|
||||
if (!poweredUp)
|
||||
{
|
||||
mSprite->setSpriteClip(0 * mWidth, 0, mSprite->getWidth(), mSprite->getHeight());
|
||||
sprite->setSpriteClip(0 * width, 0, sprite->getWidth(), sprite->getHeight());
|
||||
}
|
||||
else
|
||||
{
|
||||
mSprite->setSpriteClip((0 + 3) * mWidth, 0, mSprite->getWidth(), mSprite->getHeight());
|
||||
sprite->setSpriteClip((0 + 3) * width, 0, sprite->getWidth(), sprite->getHeight());
|
||||
}
|
||||
break;
|
||||
|
||||
case BULLET_LEFT:
|
||||
// Establece la velocidad inicial
|
||||
mVelX = -2;
|
||||
velX = -2;
|
||||
|
||||
// Rectangulo con los gráficos del objeto
|
||||
if (!poweredUp)
|
||||
{
|
||||
mSprite->setSpriteClip(1 * mWidth, 0, mSprite->getWidth(), mSprite->getHeight());
|
||||
sprite->setSpriteClip(1 * width, 0, sprite->getWidth(), sprite->getHeight());
|
||||
}
|
||||
else
|
||||
{
|
||||
mSprite->setSpriteClip((1 + 3) * mWidth, 0, mSprite->getWidth(), mSprite->getHeight());
|
||||
sprite->setSpriteClip((1 + 3) * width, 0, sprite->getWidth(), sprite->getHeight());
|
||||
}
|
||||
break;
|
||||
|
||||
case BULLET_RIGHT:
|
||||
// Establece la velocidad inicial
|
||||
mVelX = 2;
|
||||
velX = 2;
|
||||
|
||||
// Rectangulo con los gráficos del objeto
|
||||
if (!poweredUp)
|
||||
{
|
||||
mSprite->setSpriteClip(2 * mWidth, 0, mSprite->getWidth(), mSprite->getHeight());
|
||||
sprite->setSpriteClip(2 * width, 0, sprite->getWidth(), sprite->getHeight());
|
||||
}
|
||||
else
|
||||
{
|
||||
mSprite->setSpriteClip((2 + 3) * mWidth, 0, mSprite->getWidth(), mSprite->getHeight());
|
||||
sprite->setSpriteClip((2 + 3) * width, 0, sprite->getWidth(), sprite->getHeight());
|
||||
}
|
||||
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
|
||||
mCollider.r = mWidth / 2;
|
||||
collider.r = width / 2;
|
||||
|
||||
// Alinea el circulo de colisión con el objeto
|
||||
shiftColliders();
|
||||
@@ -85,13 +85,13 @@ Bullet::Bullet(int x, int y, int kind, bool poweredUp, int owner, LTexture *text
|
||||
// Destructor
|
||||
Bullet::~Bullet()
|
||||
{
|
||||
delete mSprite;
|
||||
delete sprite;
|
||||
}
|
||||
|
||||
// Pinta el objeto en pantalla
|
||||
void Bullet::render()
|
||||
{
|
||||
mSprite->render();
|
||||
sprite->render();
|
||||
}
|
||||
|
||||
// Actualiza la posición y estado del objeto en horizontal
|
||||
@@ -101,34 +101,34 @@ Uint8 Bullet::move()
|
||||
Uint8 msg = BULLET_MOVE_OK;
|
||||
|
||||
// Mueve el objeto a su nueva posición
|
||||
mPosX += mVelX;
|
||||
posX += velX;
|
||||
|
||||
// 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
|
||||
mKind = NO_KIND;
|
||||
kind = NO_KIND;
|
||||
|
||||
// Mensaje de salida
|
||||
msg = BULLET_MOVE_OUT;
|
||||
}
|
||||
|
||||
// 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
|
||||
if ((mPosY < PLAY_AREA_TOP) || (mPosY + mHeight > PLAY_AREA_BOTTOM))
|
||||
if ((posY < PLAY_AREA_TOP) || (posY + height > PLAY_AREA_BOTTOM))
|
||||
{
|
||||
// Se deshabilita
|
||||
mKind = NO_KIND;
|
||||
kind = NO_KIND;
|
||||
|
||||
// Mensaje de salida
|
||||
msg = BULLET_MOVE_OUT;
|
||||
}
|
||||
|
||||
// Actualiza la posición del sprite
|
||||
mSprite->setPosX(mPosX);
|
||||
mSprite->setPosY(mPosY);
|
||||
sprite->setPosX(posX);
|
||||
sprite->setPosY(posY);
|
||||
|
||||
// Alinea el circulo de colisión con el objeto
|
||||
shiftColliders();
|
||||
@@ -136,10 +136,10 @@ Uint8 Bullet::move()
|
||||
return msg;
|
||||
}
|
||||
|
||||
// Comprueba si el objeto está activo
|
||||
bool Bullet::isActive()
|
||||
// Comprueba si el objeto está habilitado
|
||||
bool Bullet::isEnabled()
|
||||
{
|
||||
if (mKind == NO_KIND)
|
||||
if (kind == NO_KIND)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -149,63 +149,63 @@ bool Bullet::isActive()
|
||||
}
|
||||
}
|
||||
|
||||
// Desactiva el objeto
|
||||
void Bullet::deactivate()
|
||||
// Deshabilita el objeto
|
||||
void Bullet::disable()
|
||||
{
|
||||
mKind = NO_KIND;
|
||||
kind = NO_KIND;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Bullet::getPosX()
|
||||
{
|
||||
return mPosX;
|
||||
return posX;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Bullet::getPosY()
|
||||
{
|
||||
return mPosY;
|
||||
return posY;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Bullet::setPosX(int x)
|
||||
{
|
||||
mPosX = x;
|
||||
posX = x;
|
||||
}
|
||||
|
||||
// Establece el valor de la variable
|
||||
void Bullet::setPosY(int y)
|
||||
{
|
||||
mPosY = y;
|
||||
posY = y;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Bullet::getVelY()
|
||||
{
|
||||
return mVelY;
|
||||
return velY;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Bullet::getKind()
|
||||
{
|
||||
return mKind;
|
||||
return kind;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int Bullet::getOwner()
|
||||
{
|
||||
return mOwner;
|
||||
return owner;
|
||||
}
|
||||
|
||||
// Obtiene el circulo de colisión
|
||||
circle_t &Bullet::getCollider()
|
||||
{
|
||||
return mCollider;
|
||||
return collider;
|
||||
}
|
||||
|
||||
// Alinea el circulo de colisión con el objeto
|
||||
void Bullet::shiftColliders()
|
||||
{
|
||||
mCollider.x = mPosX + mCollider.r;
|
||||
mCollider.y = mPosY + mCollider.r;
|
||||
collider.x = posX + collider.r;
|
||||
collider.y = posY + collider.r;
|
||||
}
|
||||
|
||||
@@ -20,16 +20,19 @@
|
||||
class Bullet
|
||||
{
|
||||
private:
|
||||
int mPosX; // Posición en el eje X
|
||||
int mPosY; // Posición en el eje Y
|
||||
Uint8 mWidth; // Ancho del objeto
|
||||
Uint8 mHeight; // Alto del objeto
|
||||
int mVelX; // Velocidad en el eje X
|
||||
int mVelY; // Velocidad en el eje Y
|
||||
int mKind; // Tipo de objeto
|
||||
int mOwner; // Identificador del dueño del objeto
|
||||
Sprite *mSprite; // Sprite con los graficos y métodos de pintado
|
||||
circle_t mCollider; // Circulo de colisión del objeto
|
||||
// Objetos
|
||||
Sprite *sprite; // Sprite con los graficos y métodos de pintado
|
||||
|
||||
// Variables
|
||||
int posX; // Posición en el eje X
|
||||
int posY; // Posición en el eje Y
|
||||
Uint8 width; // Ancho del objeto
|
||||
Uint8 height; // Alto del objeto
|
||||
int velX; // Velocidad en el eje X
|
||||
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
|
||||
void shiftColliders();
|
||||
@@ -47,11 +50,11 @@ public:
|
||||
// Actualiza la posición y estado del objeto
|
||||
Uint8 move();
|
||||
|
||||
// Comprueba si el objeto está activo
|
||||
bool isActive();
|
||||
// Comprueba si el objeto está habilitado
|
||||
bool isEnabled();
|
||||
|
||||
// Desactiva el objeto
|
||||
void deactivate();
|
||||
// Deshabilita el objeto
|
||||
void disable();
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int getPosX();
|
||||
|
||||
@@ -2187,7 +2187,7 @@ void Game::checkBulletBalloonCollision()
|
||||
{
|
||||
for (auto balloon : balloons)
|
||||
{
|
||||
if (balloon->isEnabled() && (!balloon->isInvulnerable()) && bullet->isActive())
|
||||
if (balloon->isEnabled() && (!balloon->isInvulnerable()) && bullet->isEnabled())
|
||||
{
|
||||
if (checkCollision(balloon->getCollider(), bullet->getCollider()))
|
||||
{
|
||||
@@ -2206,8 +2206,8 @@ void Game::checkBulletBalloonCollision()
|
||||
JA_PlaySound(mSoundBalloon);
|
||||
}
|
||||
|
||||
// Desactiva la bala
|
||||
bullet->deactivate();
|
||||
// Deshabilita la bala
|
||||
bullet->disable();
|
||||
|
||||
// Suelta el item en caso de que salga uno
|
||||
const Uint8 droppeditem = dropItem();
|
||||
@@ -2237,7 +2237,7 @@ void Game::moveBullets()
|
||||
{
|
||||
for (auto bullet : bullets)
|
||||
{
|
||||
if (bullet->isActive())
|
||||
if (bullet->isEnabled())
|
||||
{
|
||||
if (bullet->move() == BULLET_MOVE_OUT)
|
||||
{
|
||||
@@ -2252,7 +2252,7 @@ void Game::renderBullets()
|
||||
{
|
||||
for (auto bullet : bullets)
|
||||
{
|
||||
if (bullet->isActive())
|
||||
if (bullet->isEnabled())
|
||||
{
|
||||
bullet->render();
|
||||
}
|
||||
@@ -2273,7 +2273,7 @@ void Game::freeBullets()
|
||||
{
|
||||
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);
|
||||
bullets.erase(bullets.begin() + i);
|
||||
|
||||
2
todo.txt
2
todo.txt
@@ -2,7 +2,7 @@ los items se quedan pegados en el techo
|
||||
la maquina de cafe no toca el suelo
|
||||
las bolas verdes nacen naranja al explotarlas
|
||||
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
|
||||
cuando continuas la partida sigues muerto
|
||||
poder elegir el personaje para jugar
|
||||
|
||||
Reference in New Issue
Block a user