From 14c12aeea30d59e9c811f1cc8c7019053d646033 Mon Sep 17 00:00:00 2001 From: XaviDCR92 Date: Tue, 10 Jul 2018 00:04:16 +0200 Subject: More work on Unit/BaseUnit concepts. --- Sprite.cpp | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'Sprite.cpp') diff --git a/Sprite.cpp b/Sprite.cpp index ea7f9d2..d948652 100644 --- a/Sprite.cpp +++ b/Sprite.cpp @@ -3,6 +3,7 @@ * ******************************************************************/ #include "Sprite.h" +#include "System.h" /* ******************************************************************* * Defines @@ -32,8 +33,46 @@ * * \brief Constructor for Sprite class. * + * \param pu8SprData + * Pointer to raw sprite data. + * + * \param u8Colour + * Sprite colour. Default value is BLACK. + * + * \param rotation + * Sprite rotation. Default value is NOROT. + * *********************************************************************/ -Sprite::Sprite(const uint8_t& pu8SprData) : -_pu8SprData(pu8SprData) +Sprite::Sprite(const uint8_t& pu8SprData, const uint8_t u8Colour, const uint8_t rotation) : +_pu8SprData(pu8SprData), +_colour(u8Colour), +_rotation(rotation), +_x(0), +_y(0) +{ +} + +/*****************************************************************//** + * + * \brief Reportedly, this function updates X/Y coordinates for + * a Sprite object. + * + * \param x + * X position, relative to screen coordinates origin. + * + * \param y + * Y position, relative to screen coordinates origin. + * + *********************************************************************/ +void Sprite::setPos(const uint8_t x, const uint8_t y) +{ + /* Update coords according to input parameters. */ + _x = x; + _y = y; +} + +void Sprite::draw(void) { + gb.display.setColor(_colour); + gb.display.drawBitmap(_x, _y, (const uint8_t*)&_pu8SprData); } -- cgit v1.2.3