From 055f3fcc50ee61cdf845655afdad80908673753c Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Sun, 11 Dec 2011 16:43:50 +0000 Subject: [PATCH] Added option to use (rgb) or SDL_Color.. Also added options for handling x y coords to drawing code. --- Data/Media/Maps/mainmenu | 13 +++++++++++++ src/Unuk/Game.cpp | 3 ++- src/Unuk/Globals.cpp | 2 +- src/libUnuk/Button.cpp | 21 ++++++++++++++++++++- src/libUnuk/Button.h | 7 ++++++- src/libUnuk/Character.cpp | 4 ++-- src/libUnuk/Rect.cpp | 26 ++++++++++++++++++++++++++ src/libUnuk/Rect.h | 4 ++++ 8 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 Data/Media/Maps/mainmenu diff --git a/Data/Media/Maps/mainmenu b/Data/Media/Maps/mainmenu new file mode 100644 index 0000000..905bd3e --- /dev/null +++ b/Data/Media/Maps/mainmenu @@ -0,0 +1,13 @@ +rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 tree 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 water 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 water 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 water 1 n 0 000 n 0 0 water 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 +rock 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 water 1 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 +grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 gravel 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 grass 0 n 0 000 n 0 0 diff --git a/src/Unuk/Game.cpp b/src/Unuk/Game.cpp index 13c715f..67a10e9 100644 --- a/src/Unuk/Game.cpp +++ b/src/Unuk/Game.cpp @@ -19,7 +19,7 @@ Game::~Game(void) { } int Game::Run(const string savegameIDArg) { - m_player->SetXY(200, 200); + m_player->SetXY(100, 50); m_player->LoadSprites("../Data/Media/Images/Characters/template.png", 40, 45); m_npc->SetXY(300, 300); @@ -168,6 +168,7 @@ void Game::Render(void) { m_ingameMenu->Render(); } SDL_Flip(screen); + SDL_Flip(screen); } void Game::LoadSavegame(const string savegameIDArg) { diff --git a/src/Unuk/Globals.cpp b/src/Unuk/Globals.cpp index 2a35a41..8bc0852 100644 --- a/src/Unuk/Globals.cpp +++ b/src/Unuk/Globals.cpp @@ -10,4 +10,4 @@ SDL_Event event; int levelWidth; int levelHeight; -bool debugEnabled = false; +bool debugEnabled = true; diff --git a/src/libUnuk/Button.cpp b/src/libUnuk/Button.cpp index 73ed374..a4a8970 100644 --- a/src/libUnuk/Button.cpp +++ b/src/libUnuk/Button.cpp @@ -15,12 +15,21 @@ void Button::SetOutRGB(Uint8 r, Uint8 g, Uint8 b) { m_mouseOutColour.b = b; } +void Button::SetOutRGB(SDL_Color colour) { + button.SetRGB(colour); + m_mouseOutColour = colour; +} + void Button::SetOverRGB(Uint8 r, Uint8 g, Uint8 b) { m_mouseOverColour.r = r; m_mouseOverColour.g = g; m_mouseOverColour.b = b; } +void Button::SetOverRGB(SDL_Color colour) { + m_mouseOverColour = colour; +} + void Button::SetXY(int xArg, int yArg) { x = xArg; y = yArg; @@ -37,6 +46,11 @@ void Button::SetTextRGB(Uint8 r, Uint8 g, Uint8 b) { m_text.SetTextBlended(m_text.GetText(), "small", m_textColour); } +void Button::SetTextRGB(SDL_Color colour) { + m_textColour = colour; + m_text.SetTextBlended(m_text.GetText(), "small", colour); +} + void Button::SetText(string textArg) { m_text.SetTextBlended(textArg, "small", m_textColour); @@ -52,7 +66,7 @@ bool Button::CheckMouseOver(void) { return true; } } - button.SetRGB(m_mouseOutColour.r, m_mouseOutColour.g, m_mouseOutColour.b); + button.SetRGB(m_mouseOutColour); return false; } @@ -60,3 +74,8 @@ void Button::Render(void) { button.DrawLiteral(); m_text.RenderLiteral(); } + +void Button::Render(int xArg, int yArg) { + button.DrawLiteral(xArg, yArg); + m_text.RenderLiteral(xArg, yArg); +} diff --git a/src/libUnuk/Button.h b/src/libUnuk/Button.h index d1a8e07..3d7a119 100644 --- a/src/libUnuk/Button.h +++ b/src/libUnuk/Button.h @@ -14,12 +14,16 @@ public: ~Button(void); void SetOutRGB(Uint8 r, Uint8 g, Uint8 b); + void SetOutRGB(SDL_Color); void SetOverRGB(Uint8 r, Uint8 g, Uint8 b); - void SetXY(int xArg, int yArg); + void SetOverRGB(SDL_Color); void SetTextRGB(Uint8 r, Uint8 g, Uint8 b); + void SetTextRGB(SDL_Color); void SetText(string textArg); + void SetXY(int xArg, int yArg); + int GetX(void) { return x; } int GetY(void) { return y; } int GetWidth(void) { return w; } @@ -28,6 +32,7 @@ public: bool CheckMouseOver(void); void Render(void); + void Render(int xArg, int yArg); private: SDL_Color m_mouseOutColour; diff --git a/src/libUnuk/Character.cpp b/src/libUnuk/Character.cpp index a7c89c0..eedd437 100644 --- a/src/libUnuk/Character.cpp +++ b/src/libUnuk/Character.cpp @@ -1,7 +1,7 @@ #include "Character.h" // Pixels * 60 / sec -const float Character::CHARACTER_SPEED = 2.f; +const float Character::CHARACTER_SPEED = 3.5f; static listcollisionList; static list::iterator collisionIterator; @@ -106,7 +106,7 @@ void Character::Move(void) { tileY = ((y + (h / 2)) / TILE_HEIGHT); if((y < 0) || (y + h) > levelHeight) - y -= yVel; + y -= yVel; if(CheckTileCollisions()) y -= yVel; if(CheckEntityCollisions()) diff --git a/src/libUnuk/Rect.cpp b/src/libUnuk/Rect.cpp index 5528146..45bb779 100644 --- a/src/libUnuk/Rect.cpp +++ b/src/libUnuk/Rect.cpp @@ -22,6 +22,12 @@ void Rect::SetRGB(Uint8 rArg, Uint8 gArg, Uint8 bArg) { b = bArg; } +void Rect::SetRGB(SDL_Color colour) { + r = colour.r; + g = colour.g; + b = colour.b; +} + void Rect::Draw(void) { SDL_Rect offset; @@ -33,6 +39,26 @@ void Rect::Draw(void) { SDL_FillRect(screen, &offset, SDL_MapRGB(screen->format, r, g, b)); } +void Rect::Draw(int xArg, int yArg) { + SDL_Rect offset; + + offset.x = xArg - camera.x; + offset.y = yArg - camera.y; + offset.w = rect.w; + offset.h = rect.h; +} + void Rect::DrawLiteral(void) { SDL_FillRect(screen, &rect, SDL_MapRGB(screen->format, r, g, b)); } + +void Rect::DrawLiteral(int xArg, int yArg) { + SDL_Rect offset; + + offset.x = xArg; + offset.y = yArg; + offset.w = rect.w; + offset.h = rect.h; + + SDL_FillRect(screen, &offset, SDL_MapRGB(screen->format, r, g, b)); +} diff --git a/src/libUnuk/Rect.h b/src/libUnuk/Rect.h index ae076ea..da4f5f5 100644 --- a/src/libUnuk/Rect.h +++ b/src/libUnuk/Rect.h @@ -18,10 +18,14 @@ public: void SetXY(int xArg, int yArg); void SetWidthHeight(int wArg, int hArg); + void SetRGB(Uint8 rArg, Uint8 gArg, Uint8 bArg); + void SetRGB(SDL_Color); void Draw(void); + void Draw(int xArg, int yArg); void DrawLiteral(void); + void DrawLiteral(int xArg, int yArg); protected: Uint8 r;