#include "const.h" #include "coffeedrop.h" #ifndef UNUSED // Constructor CoffeeDrop::CoffeeDrop() { mPosX = 0; mPosY = 0; mWidth = 8; mHeight = 8; mVelX = 0; mVelY = 0; mGravity = 0.1f; mFloor = 0; mEnabled = false; mSprite = new Sprite(); mAlpha = 128; } // Destructor CoffeeDrop::~CoffeeDrop() { delete mSprite; } // Inicializador void CoffeeDrop::init(LTexture *texture, SDL_Renderer *renderer, float x, float y, float velX, float velY, int floor) { mEnabled = true; mPosX = x; mPosY = y; mVelX = velX; mVelY = velY; mFloor = floor; mSprite->setRenderer(renderer); mSprite->setTexture(texture); mSprite->setSpriteClip(256, 97, mWidth, mHeight); mSprite->setPosX(x); mSprite->setPosY(y); } // Actualiza las variables del objeto void CoffeeDrop::update() { if (mEnabled) { mVelY += mGravity; mPosX += mVelX; mPosY += mVelY; mSprite->setPosX((int)mPosX); mSprite->setPosY((int)mPosY); if ((mPosY > mFloor) || (mPosX > PLAY_AREA_RIGHT) || ((mPosX - mWidth) < PLAY_AREA_LEFT)) mEnabled = false; mAlpha -= 2; if (mAlpha == 0) mEnabled = false; } } // Pinta el objeto void CoffeeDrop::render() { if (mEnabled) { mSprite->getTexture()->setAlpha(mAlpha); mSprite->render(); mSprite->getTexture()->setAlpha(255); } } // Deshabilita el objeto void CoffeeDrop::disable() { mEnabled = false; } // Comprueba si està habilitado bool CoffeeDrop::isEnabled() { return mEnabled; } #endif