diff --git a/2d-game.vcxproj b/2d-game.vcxproj index 7cac94e0b00b558c1d1ed98044c4ea04045d2be4..04e8f1e17f7196530c57ddd6963da08a019e356f 100644 --- a/2d-game.vcxproj +++ b/2d-game.vcxproj @@ -168,6 +168,10 @@ <ClInclude Include="WallEntity.h" /> <ClInclude Include="WallTexture.h" /> </ItemGroup> + <ItemGroup> + <None Include="ClassDiagram.cd" /> + <None Include="README.md" /> + </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> diff --git a/2d-game.vcxproj.filters b/2d-game.vcxproj.filters index 5c77d055d245233c0a2189b9c0951238a71b5d71..e0fb5b216e1478cd6f5a616d7cf8bbd75fd51ddc 100644 --- a/2d-game.vcxproj.filters +++ b/2d-game.vcxproj.filters @@ -101,4 +101,10 @@ <Filter>Header Files\gameObj\render</Filter> </ClInclude> </ItemGroup> + <ItemGroup> + <None Include="README.md"> + <Filter>Source Files</Filter> + </None> + <None Include="ClassDiagram.cd" /> + </ItemGroup> </Project> \ No newline at end of file diff --git a/ClassDiagram.cd b/ClassDiagram.cd new file mode 100644 index 0000000000000000000000000000000000000000..83351edbdd5d8341148138125b4127761ae9c243 --- /dev/null +++ b/ClassDiagram.cd @@ -0,0 +1,487 @@ +<?xml version="1.0" encoding="utf-8"?> +<ClassDiagram MajorVersion="1" MinorVersion="1"> + <Class Name="DynamicArray<T>" Collapsed="true"> + <Position X="9.5" Y="11.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAACAAAAAAAEAAAggQBQAAAAAAAAAAAAAAIAAAA=</HashCode> + <FileName>DynamicArray.hpp</FileName> + </TypeIdentifier> + </Class> + <Class Name="GameClient" Collapsed="true"> + <Position X="1" Y="10" Width="1.5" /> + <TypeIdentifier> + <HashCode>AgAAAAAAABAAAAAAAAEABAAAAABAAQQACAAAAAAAAAA=</HashCode> + <FileName>mainGame.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="render::IRenderable" Collapsed="true"> + <Position X="9.75" Y="12.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAA=</HashCode> + <FileName>interfaces.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="render::ITexture" Collapsed="true"> + <Position X="3.75" Y="10" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAA=</HashCode> + <FileName>ITexture.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="render::LazySprite" Collapsed="true"> + <Position X="7.75" Y="10.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAIAAAAAAAAAAAAAAgAABAAAAAAQAAAAAAwAAA=</HashCode> + <FileName>LazySprite.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="render::SpriteManager" Collapsed="true"> + <Position X="7.75" Y="11.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAABAAAAAAAAAAABAAAAAAAAIAAAAAAAAABAAAAAA=</HashCode> + <FileName>ResourceManager.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="render::ResourceManager" Collapsed="true"> + <Position X="16.75" Y="1.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAABAAAAAABAEFAAAAAFAAAQAAEAAAAAIAAA=</HashCode> + <FileName>ResourceManager.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="render::SimpleSprite" Collapsed="true"> + <Position X="4.75" Y="11.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAEAAIAAAAAAABAAAAAAAAAAAAAQAgA=</HashCode> + <FileName>SimpleSprite.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="render::WallTexture" Collapsed="true"> + <Position X="2.5" Y="11.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAEAAAAAAAAAAAAAAICAAAAAABAAAAAAgAAAAAAQAAA=</HashCode> + <FileName>WallTexture.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="entities::Entity" Collapsed="true"> + <Position X="0.5" Y="11.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>EABCAAAAQIAAAgAAAACAAIAAAAAIAAIEAAAAAIEQAAA=</HashCode> + <FileName>Entity.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="entities::WallEntity" Collapsed="true"> + <Position X="0.5" Y="12.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAgAAAAIAAAAA=</HashCode> + <FileName>WallEntity.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::TransformedView" Collapsed="true"> + <Position X="8.5" Y="6" Width="1.5" /> + <TypeIdentifier> + <HashCode>ABHBQAQAAFAGAzQACAMCyEQQUAAACBAQAsDE4AAIAog=</HashCode> + <FileName>olcPGEX_TransformedView.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::TileTransformedView" Collapsed="true"> + <Position X="8.5" Y="7.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAgAAAAABAAAYAAAEAAAAAEAAKAAAAIAAAAEAIA=</HashCode> + <FileName>olcPGEX_TransformedView.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::PixelGameEngine" Collapsed="true"> + <Position X="1" Y="6.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>QoPpggsYRXDVtjgCGwsE0EVcQaBG2BiAGPRVSMDpMzk=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Sprite" Collapsed="true"> + <Position X="20.25" Y="1.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAABABBAEACQAAQBQAAAAARAAAAAIAAQAAEAAgAAEAI=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::ResourcePack" Collapsed="true"> + <Position X="18.5" Y="1.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAgAAAAAEAAAIAAIBAIAgAAAAAAAAAAAACgIAIAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::ImageLoader" Collapsed="true"> + <Position X="3" Y="3.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAACAAAAAAAAAAIAAgAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Decal" Collapsed="true"> + <Position X="15" Y="0.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAQAAAAAAAAQAAAAAAAAAAAAABAAAAAAUAEAAAAAAgA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Renderable" Collapsed="true"> + <Position X="20.25" Y="0.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAQAgAAAAAQAAAAAAAAAAAgAAAAAAEAQEAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Renderer" Collapsed="true"> + <Position X="5.75" Y="6" Width="1.5" /> + <TypeIdentifier> + <HashCode>SAAgAAAAAIBASAAACAAAAgAAAAAEAIBAAIBAAAEACgA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Platform" Collapsed="true"> + <Position X="4" Y="0.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAIgAAAEAAAABAAAAAAAACAIAAAAAAAAQAEiAAACAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::PGEX" Collapsed="true"> + <Position X="8.5" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>gAAAAAAAABAIAACAAAAgAAAAAAAAAAAAAAAAAAAAgAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Renderer_OGL10" Collapsed="true"> + <Position X="4.5" Y="7.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>SAAAASAAQIBASCAACAAAAgAAAAAGAIBAAMJEAAEAAgA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Renderer_OGL33" Collapsed="true"> + <Position X="6.75" Y="7.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>SCghAyFBQIBWSCIAGAAAIgABQAAGBJhBAsJMEEEACgg=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::GDIPlusStartup" Collapsed="true"> + <Position X="18.5" Y="0.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAEBAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::ImageLoader_GDIPlus" Collapsed="true"> + <Position X="5.25" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAIAAAAAAAAAgAAAAAAACAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::ImageLoader_LibPNG" Collapsed="true"> + <Position X="0.75" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::ImageLoader_STB" Collapsed="true"> + <Position X="3" Y="4.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAABA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Platform_Windows" Collapsed="true"> + <Position X="0.75" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAIgEAAEAAAABAABAAAAAKAIAAAAAAAAQAEiAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Platform_Linux" Collapsed="true"> + <Position X="3" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAIgSAAEAAAgAAAAAAAAACAICgAAAAAAUAEiAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Platform_GLUT" Collapsed="true"> + <Position X="5.25" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>gAgIgAAAEAAAAAAAAAAAAACAJAAAQAAAAQAEiAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Class Name="olc::Platform_Emscripten" Collapsed="true"> + <Position X="7.5" Y="1.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAEAAAAAAAAAAAAAAAIAAAAAAAAQAEiAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Class> + <Struct Name="olc::Pixel" Collapsed="true"> + <Position X="20.25" Y="2.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAIAAAAAAAAAAAAAABAQAAAAAAAAAAAAAgAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Struct> + <Struct Name="olc::HWButton" Collapsed="true"> + <Position X="16.75" Y="2.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAgAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAgA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Struct> + <Struct Name="olc::v2d_generic<T>" Collapsed="true"> + <Position X="10.25" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAEAAAAAgQQEAAAgAIAQAAAAAAhKAAgABgAAAAAAE=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Struct> + <Struct Name="olc::ResourceBuffer" Collapsed="true"> + <Position X="15" Y="1.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAIAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Struct> + <Struct Name="olc::DecalInstance" Collapsed="true"> + <Position X="15" Y="2.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AgAAAACAAAAAAACAAAAAAIAAAAAQAAAAAAgAAAAAAgA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Struct> + <Struct Name="olc::LayerDesc" Collapsed="true"> + <Position X="18.5" Y="2.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AkAIAAAAAAAAABAABQAACAAAAAABQAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Struct> + <Typedef Name="olc::vi2d" Collapsed="true"> + <Position X="13.25" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::vu2d" Collapsed="true"> + <Position X="7.25" Y="3.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::vf2d" Collapsed="true"> + <Position X="12.25" Y="1.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::vd2d" Collapsed="true"> + <Position X="10.25" Y="5.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="wglSwapInterval_t" Collapsed="true"> + <Position X="20.25" Y="8" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="glDeviceContext_t" Collapsed="true"> + <Position X="16.75" Y="5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="glRenderContext_t" Collapsed="true"> + <Position X="18.5" Y="5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="glSwapInterval_t" Collapsed="true"> + <Position X="22" Y="5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="locSwapInterval_t" Collapsed="true"> + <Position X="15" Y="8" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::GLchar" Collapsed="true"> + <Position X="15" Y="5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::GLsizeiptr" Collapsed="true"> + <Position X="20.25" Y="5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locCreateShader_t" Collapsed="true"> + <Position X="16.75" Y="6.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locCreateProgram_t" Collapsed="true"> + <Position X="15" Y="6.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locDeleteShader_t" Collapsed="true"> + <Position X="20.25" Y="6.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locShaderSource_t" Collapsed="true"> + <Position X="22" Y="7.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locCompileShader_t" Collapsed="true"> + <Position X="22" Y="5.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locLinkProgram_t" Collapsed="true"> + <Position X="20.25" Y="7.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locDeleteProgram_t" Collapsed="true"> + <Position X="18.5" Y="6.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locAttachShader_t" Collapsed="true"> + <Position X="15" Y="5.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locBindBuffer_t" Collapsed="true"> + <Position X="16.75" Y="5.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locBufferData_t" Collapsed="true"> + <Position X="20.25" Y="5.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locGenBuffers_t" Collapsed="true"> + <Position X="15" Y="7.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locVertexAttribPointer_t" Collapsed="true"> + <Position X="18.5" Y="8" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locEnableVertexAttribArray_t" Collapsed="true"> + <Position X="22" Y="6.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locUseProgram_t" Collapsed="true"> + <Position X="16.75" Y="8" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locBindVertexArray_t" Collapsed="true"> + <Position X="18.5" Y="5.75" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locGenVertexArrays_t" Collapsed="true"> + <Position X="16.75" Y="7.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Typedef Name="olc::locGetShaderInfoLog_t" Collapsed="true"> + <Position X="18.5" Y="7.25" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Typedef> + <Enum Name="olc::rcode" Collapsed="true"> + <Position X="18.5" Y="4" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAgCA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Enum> + <Enum Name="olc::Key" Collapsed="true"> + <Position X="16.75" Y="4" Width="1.5" /> + <TypeIdentifier> + <HashCode>IgBKPCYRIAQCigCAAQAAwU8kkgMKYJhzAAAAvv//YQE=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Enum> + <Enum Name="olc::DecalMode" Collapsed="true"> + <Position X="15" Y="4" Width="1.5" /> + <TypeIdentifier> + <HashCode>AAgAAAAAACAAAAAAABAAAIAAAAAAAAAAAAAgAAAABAA=</HashCode> + <FileName>olcPixelGameEngine.h</FileName> + </TypeIdentifier> + </Enum> + <Font Name="Segoe UI" Size="9" /> +</ClassDiagram> \ No newline at end of file diff --git a/Entity.cpp b/Entity.cpp index 42e55b88243fcba908b67d7ef6804c85b73af9b3..79b64778dc6c6a0f0f0a5c164264c4fbadd078a8 100644 --- a/Entity.cpp +++ b/Entity.cpp @@ -34,32 +34,41 @@ namespace entities { Entity::Entity(const olc::vf2d& pos) - : pos(pos), is_initialized(false){} + : pos(pos), is_initialized(false), is_alive(true){} vf2d Entity::getPos() const { return this->pos; } - olc::vf2d Entity::getSize() const + vf2d Entity::getSize() const { - return olc::vf2d(1, 1); + return vf2d(1/16, 1/16); } - void Entity::render(olc::TransformedView& scene) + void Entity::render(TransformedView& scene) { getTexture().render(scene, *this); } - boolean Entity::isInitialized() + bool Entity::isInitialized() { return is_initialized; } + bool Entity::isAlive() const + { + return this->is_alive; + } } -TransformedView& operator+=(olc::TransformedView& scene, entities::Entity& entity) { +TransformedView& operator+=(TransformedView& scene, entities::Entity& entity) { entity.render(scene); return scene; +} + +TransformedView& operator+=(TransformedView& scene, std::shared_ptr<entities::Entity>& entity) { + entity->render(scene); + return scene; } \ No newline at end of file diff --git a/Entity.h b/Entity.h index 1ef293bc32fd70cabc22ae48084caf7a32c7d6c1..064889f78f27df7b79b8985b802c1518fbee3c59 100644 --- a/Entity.h +++ b/Entity.h @@ -18,16 +18,18 @@ namespace entities { virtual olc::vf2d getHitBoxSize() const = 0; virtual olc::vf2d getCollision(const Entity& other); bool is_initialized; + bool is_alive; //walls shouldn't have variables like this. But it will be an intended bug. public: - + Entity(const olc::vf2d& pos); virtual void init(GameClient& client){} - virtual boolean isInitialized(); + virtual bool isInitialized(); //nodiscard??? [[nodiscard]] virtual olc::vf2d getPos() const; [[nodiscard]] virtual olc::vf2d getSize() const; + [[nodiscard]] virtual bool isAlive() const; virtual void tick(GameClient& client, float deltaT){} @@ -51,4 +53,5 @@ namespace entities { /** * I literally add entities to the scene :D */ -olc::TransformedView& operator+=(olc::TransformedView&, entities::Entity&); \ No newline at end of file +olc::TransformedView& operator+=(olc::TransformedView&, entities::Entity&); +olc::TransformedView& operator+=(olc::TransformedView&, std::shared_ptr<entities::Entity>&); \ No newline at end of file diff --git a/README.md b/README.md index 3a0ccc33b420e7307c51fc9db2691b79345651ae..935d539712015bed762674469aa70ab8b44d88d9 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ # :D + +## It's not a bug. It's an undocumented feature \ No newline at end of file diff --git a/WallTexture.cpp b/WallTexture.cpp index e611ce6b3d313c1d376c94bb7a19299db0414088..d03cd23f297b1c728ee6b2d295c8ec812a289682 100644 --- a/WallTexture.cpp +++ b/WallTexture.cpp @@ -20,7 +20,7 @@ namespace render //I can't use index[] because that is not const function... WHY??? offset += (offsetMap.find(wallEntity.getNeighbourID())->second * this->size); - this->sprite.render(scene, wallEntity.getPos(), offset, size, wallEntity.getSize()); + this->sprite.renderCentered(scene, wallEntity.getPos(), offset, size, wallEntity.getSize()); } diff --git a/mainGame.cpp b/mainGame.cpp index 1af7bb5544365e0fd57912942007ecaa3940f2dc..bcba77c3f2dd99cc0dfbece2a24c2ed81029ad75 100644 --- a/mainGame.cpp +++ b/mainGame.cpp @@ -5,6 +5,7 @@ const float maxTimeDelta = 0.05f; using namespace std; using namespace entities; +using namespace olc; GameClient& GameClient::createInstance() { @@ -40,10 +41,12 @@ bool GameClient::OnUserCreate() bool GameClient::OnUserUpdate(float fElapsedTime) { + + fElapsedTime = std::min(maxTimeDelta, fElapsedTime); //return false if it want to exit. - for(std::shared_ptr<Entity> entity : this->getEntities()){ + for(std::shared_ptr<Entity>& entity : this->getEntities()){ entity->tick(*this, fElapsedTime); } @@ -53,6 +56,22 @@ bool GameClient::OnUserUpdate(float fElapsedTime) entity->init(*this); } } + + //lambda remove condition. because why not? + entities.removeIf([](const shared_ptr<Entity>& entity)->bool + { + return !entity->isAlive(); + }); + + TransformedView scene; + + scene.Initialise() + + for(auto& entity : entities){ + // I literally add entities to the scene :D + scene += entity; + } + return true; }