diff --git a/CMakeLists.txt b/CMakeLists.txt index 36ea89a..671b8d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,8 @@ add_executable(${PROJECT_NAME} src/drawable.cpp src/sizeratio.cpp src/sizenotifiable.cpp + src/platform.cpp + src/platformsystem.cpp ) target_link_libraries(${PROJECT_NAME} diff --git a/resources/graphics/platform.png b/resources/graphics/platform.png new file mode 100644 index 0000000..a5acc2c Binary files /dev/null and b/resources/graphics/platform.png differ diff --git a/src/platform.cpp b/src/platform.cpp new file mode 100644 index 0000000..0bf89bd --- /dev/null +++ b/src/platform.cpp @@ -0,0 +1,41 @@ +/* + Copyright 2014 Michele "King_DuckZ" Santullo + + This file is part of CloonelJump. + + CloonelJump is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + CloonelJump is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with CloonelJump. If not, see . +*/ + +#include "platform.hpp" +#include "texture.hpp" +#include + +namespace cloonel { + ///-------------------------------------------------------------------------- + ///-------------------------------------------------------------------------- + Platform::Platform (SDLMain* parSdlMain, const float2& parPos, Texture* parTexture, const float2& parSize) : + m_screenRatio(parSdlMain), + m_position(parPos), + m_size(parSize), + m_surface(parTexture) + { + assert(m_surface); + } + + ///-------------------------------------------------------------------------- + ///-------------------------------------------------------------------------- + void Platform::Draw() const { + m_surface->Render(m_position, m_size, m_screenRatio.Ratio(), false); + } +} //namespace cloonel diff --git a/src/platform.hpp b/src/platform.hpp new file mode 100644 index 0000000..988b3a1 --- /dev/null +++ b/src/platform.hpp @@ -0,0 +1,46 @@ +/* + Copyright 2014 Michele "King_DuckZ" Santullo + + This file is part of CloonelJump. + + CloonelJump is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + CloonelJump is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with CloonelJump. If not, see . +*/ + +#ifndef idDBDFC83B5EBA417D96A342111BFA463E +#define idDBDFC83B5EBA417D96A342111BFA463E + +#include "sizenotifiable.hpp" +#include "drawable.hpp" + +namespace cloonel { + class Texture; + class SDLMain; + + class Platform : public Drawable { + public: + Platform ( SDLMain* parSdlMain, const float2& parPos, Texture* parTexture, const float2& parSize ); + virtual ~Platform ( void ) noexcept = default; + Platform& operator= ( Platform&& parOther ); + + virtual void Draw ( void ) const; + + private: + SizeNotifiable m_screenRatio; + float2 m_position; + const float2 m_size; + Texture* const m_surface; + }; +} //namespace cloonel + +#endif diff --git a/src/platformsystem.cpp b/src/platformsystem.cpp new file mode 100644 index 0000000..5a29693 --- /dev/null +++ b/src/platformsystem.cpp @@ -0,0 +1,51 @@ +/* + Copyright 2014 Michele "King_DuckZ" Santullo + + This file is part of CloonelJump. + + CloonelJump is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + CloonelJump is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with CloonelJump. If not, see . +*/ + +#include "platformsystem.hpp" +#include "platform.hpp" + +namespace cloonel { + ///-------------------------------------------------------------------------- + ///-------------------------------------------------------------------------- + PlatformSystem::PlatformSystem() : + m_platforms() + { + } + + ///-------------------------------------------------------------------------- + ///-------------------------------------------------------------------------- + PlatformSystem::PlatformSystem (PlatformSystem&& parOther) { + m_platforms.swap(parOther.m_platforms); + } + + ///-------------------------------------------------------------------------- + ///-------------------------------------------------------------------------- + PlatformSystem::~PlatformSystem() noexcept { + } + + ///-------------------------------------------------------------------------- + ///-------------------------------------------------------------------------- + void PlatformSystem::SpawnPlatforms() { + } + + ///-------------------------------------------------------------------------- + ///-------------------------------------------------------------------------- + void PlatformSystem::GarbageCollect() { + } +} //namespace cloonel diff --git a/src/platformsystem.hpp b/src/platformsystem.hpp new file mode 100644 index 0000000..8b5df3d --- /dev/null +++ b/src/platformsystem.hpp @@ -0,0 +1,43 @@ +/* + Copyright 2014 Michele "King_DuckZ" Santullo + + This file is part of CloonelJump. + + CloonelJump is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + CloonelJump is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with CloonelJump. If not, see . +*/ + +#ifndef id17908979556C47F8A978688BBE4A9D22 + +#include + +namespace cloonel { + class Platform; + + class PlatformSystem { + public: + PlatformSystem ( void ); + PlatformSystem ( const PlatformSystem& ) = delete; + PlatformSystem ( PlatformSystem&& parOther ); + ~PlatformSystem ( void ) noexcept; + PlatformSystem& operator= ( const PlatformSystem& ) = delete; + + void SpawnPlatforms ( void ); + void GarbageCollect ( void ); + + private: + std::vector m_platforms; + }; +} //namespace cloonel + +#endif