diff options
| author | XaviDCR92 <xavi.dcr@gmail.com> | 2018-07-10 23:17:34 +0200 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@gmail.com> | 2018-07-10 23:17:34 +0200 |
| commit | 20936e93023c18f54d217c66b0e08fa80f4f7d50 (patch) | |
| tree | 613f81844cfbceb5a097c4ccf77dc3688081b3e4 /Sprite.cpp | |
| parent | 14c12aeea30d59e9c811f1cc8c7019053d646033 (diff) | |
Camera is now an independent instance, and HumanPlayer only holds a reference to it.
Diffstat (limited to 'Sprite.cpp')
| -rw-r--r-- | Sprite.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
@@ -17,6 +17,8 @@ * Global variables definition * ******************************************************************/ +const Camera* _cam; + /* ******************************************************************* * Local variables definition * ******************************************************************/ @@ -36,6 +38,9 @@ * \param pu8SprData * Pointer to raw sprite data. * + * \param _followCam + * Sprite is moved by camera. Default value is true. + * * \param u8Colour * Sprite colour. Default value is BLACK. * @@ -43,8 +48,9 @@ * Sprite rotation. Default value is NOROT. * *********************************************************************/ -Sprite::Sprite(const uint8_t& pu8SprData, const uint8_t u8Colour, const uint8_t rotation) : +Sprite::Sprite(const uint8_t* pu8SprData, const bool followCam, const uint8_t u8Colour, const uint8_t rotation) : _pu8SprData(pu8SprData), +_followCam(followCam), _colour(u8Colour), _rotation(rotation), _x(0), @@ -73,6 +79,17 @@ void Sprite::setPos(const uint8_t x, const uint8_t y) void Sprite::draw(void) { - gb.display.setColor(_colour); - gb.display.drawBitmap(_x, _y, (const uint8_t*)&_pu8SprData); + gb.display.setColor(_colour, WHITE); + + if (_cam != NULL) + { + const uint8_t x = _followCam ? _cam->getX(_x) : _x; + const uint8_t y = _followCam ? _cam->getY(_y) : _y; + + gb.display.drawBitmap(x, y, _pu8SprData); + } + else + { + /* Error: uninitialized camera. */ + } } |
