Added the Grid, Camera, Level system

Basic player
Started (Barely) on the TextureManager
And other fixes
This commit is contained in:
Bram Verhulst
2024-03-11 03:29:44 +01:00
parent f7c2262e10
commit d6bb3add26
35 changed files with 991 additions and 62 deletions

View File

@@ -31,6 +31,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="BaseGame.h" />
<ClInclude Include="colors.h" />
<ClInclude Include="Matrix2x3.h" />
<ClInclude Include="base.h" />
<ClInclude Include="SoundEffect.h" />
@@ -95,9 +96,18 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<IncludePath>..\Libraries\SDLTtf\SDL2_ttf-2.20.2\include;..\Libraries\SDLImage\SDL2_image-2.6.3\include;..\Libraries\SDLMixer\SDL2_mixer-2.6.3\include;..\Libraries\SDLMain\SDL2-2.26.3\include;$(IncludePath)</IncludePath>
<IncludePath>C:\Users\Bram\Desktop\Programming 2\Exam\dae16-VerhulstBram\Libraries\DearImGui;..\Libraries\SDLTtf\SDL2_ttf-2.20.2\include;..\Libraries\SDLImage\SDL2_image-2.6.3\include;..\Libraries\SDLMixer\SDL2_mixer-2.6.3\include;..\Libraries\SDLMain\SDL2-2.26.3\include;$(IncludePath)</IncludePath>
<LibraryPath>..\Libraries\SDLTtf\SDL2_ttf-2.20.2\lib\x64;..\Libraries\SDL2_mixer-2.6.3\lib\x64;..\Libraries\SDLImage\SDL2_image-2.6.3\lib\x64;..\Libraries\SDLMain\SDL2-2.26.3\lib\x64;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<IncludePath>C:\Users\Bram\Desktop\Programming 2\Exam\dae16-VerhulstBram\Libraries\DearImGui;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<IncludePath>C:\Users\Bram\Desktop\Programming 2\Exam\dae16-VerhulstBram\Libraries\DearImGui;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<IncludePath>C:\Users\Bram\Desktop\Programming 2\Exam\dae16-VerhulstBram\Libraries\DearImGui;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

View File

@@ -42,6 +42,144 @@
<ClCompile Include="Vector2f.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_allegro5.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_android.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_dx9.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_dx10.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_dx11.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_dx12.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_glfw.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_glut.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_opengl2.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_opengl3.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_sdl2.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_sdl3.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_sdlrenderer2.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_sdlrenderer3.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_vulkan.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_wgpu.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\backends\imgui_impl_win32.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_allegro5\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_android_opengl3\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_emscripten_wgpu\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_glfw_opengl2\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_glfw_opengl3\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_glfw_vulkan\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_glut_opengl2\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_null\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_sdl2_directx11\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_sdl2_opengl2\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_sdl2_opengl3\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_sdl2_sdlrenderer2\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_sdl2_vulkan\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_sdl3_opengl3\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_sdl3_sdlrenderer3\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_win32_directx9\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_win32_directx10\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_win32_directx11\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_win32_directx12\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\example_win32_opengl3\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\examples\libs\usynergy\uSynergy.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\misc\cpp\imgui_stdlib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\misc\fonts\binary_to_compressed_c.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\misc\freetype\imgui_freetype.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\imgui.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\imgui_demo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\imgui_draw.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\imgui_tables.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DearImGui\imgui_widgets.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="BaseGame.h">
@@ -77,5 +215,110 @@
<ClInclude Include="Transform.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="colors.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_allegro5.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_android.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_dx9.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_dx10.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_dx11.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_dx12.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_glfw.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_glut.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_metal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_opengl2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_opengl3.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_opengl3_loader.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_osx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_sdl2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_sdl3.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_sdlrenderer2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_sdlrenderer3.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_vulkan.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_wgpu.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\backends\imgui_impl_win32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\examples\example_allegro5\imconfig_allegro5.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\examples\libs\emscripten\emscripten_mainloop_stub.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\examples\libs\glfw\include\GLFW\glfw3.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\examples\libs\glfw\include\GLFW\glfw3native.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\examples\libs\usynergy\uSynergy.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\misc\cpp\imgui_stdlib.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\misc\freetype\imgui_freetype.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\misc\single_file\imgui_single_file.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\imconfig.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\imgui.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\imgui_internal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\imstb_rectpack.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\imstb_textedit.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DearImGui\imstb_truetype.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

16
Engine/colors.h Normal file
View File

@@ -0,0 +1,16 @@

#include "structs.h"
namespace Colors
{
const Color4f WHITE{ 1.0f, 1.0f, 1.0f, 1.0f };
const Color4f BLACK{ 0.0f, 0.0f, 0.0f, 1.0f };
const Color4f RED{ 1.0f, 0.0f, 0.0f, 1.0f };
const Color4f GREEN{ 0.0f, 1.0f, 0.0f, 1.0f };
const Color4f BLUE{ 0.0f, 0.0f, 1.0f, 1.0f };
const Color4f YELLOW{ 1.0f, 1.0f, 0.0f, 1.0f };
const Color4f MAGENTA{ 1.0f, 0.0f, 1.0f, 1.0f };
const Color4f CYAN{ 0.0f, 1.0f, 1.0f, 1.0f };
}

View File

@@ -20,6 +20,21 @@ Point2f::Point2f()
Point2f::Point2f(float x, float y)
: x { x }, y { y } {
}
Point2f Point2f::operator+(const Point2f& other) const {
return Point2f { x + other.x, y + other.y };
}
Point2f Point2f::operator*(float other) const {
return Point2f { x * other, y * other };
}
Point2f Point2f::operator*(const Point2f& other) const {
return Point2f { x * other.x, y * other.y };
}
Point2f Point2f::operator*(int other) const {
return Point2f { x * float(other), y * float(other) };
}
Point2f Point2f::operator/(float other) const {
return Point2f { x / other, y / other };
}
// Point2f::Point2f(int x, int y)
// : x { (float)x }, y { (float)y } {

View File

@@ -18,6 +18,13 @@ struct Point2f
explicit Point2f( float x, float y );
//Point2f(int x, int y); //Stupid fix for it giving an error
//operator
Point2f operator+( const Point2f& other ) const;
Point2f operator*( float other ) const;
Point2f operator*( const Point2f& other ) const;
Point2f operator*( int other ) const;
Point2f operator/( float other ) const;
float x;
float y;
};

View File

@@ -5,13 +5,17 @@
#include <iostream>
#include "utils.h"
#pragma region OpenGLDrawFunctionality
void utils::SetColor( const Color4f& color )
{
glColor4f( color.r, color.g, color.b, color.a );
}
void utils::ClearBackground( const Color4f& color ) {
glClearColor(color.r, color.g, color.b, color.a);
glClear(GL_COLOR_BUFFER_BIT);
}
void utils::DrawPoint( float x, float y, float pointSize )
{
glPointSize( pointSize );
@@ -684,3 +688,7 @@ bool utils::IntersectRectLine(const Rectf& r, const Point2f& p1, const Point2f&
}
#pragma endregion CollisionFunctionality
int utils::randRange(int min, int max) {
return min + rand() % (( max + 1 ) - min);
}

View File

@@ -9,6 +9,8 @@ namespace utils
#pragma region OpenGLDrawFunctionality
void SetColor( const Color4f& color );
void ClearBackground( const Color4f& color );
void DrawPoint( float x, float y, float pointSize = 1.0f );
void DrawPoint( const Point2f& p, float pointSize = 1.0f );
@@ -81,6 +83,7 @@ namespace utils
bool IsPointOnLineSegment(const Point2f& p, const Point2f& a, const Point2f& b);
bool IntersectRectLine(const Rectf& r, const Point2f& p1, const Point2f& p2, float& intersectMin, float& intersectMax);
int randRange(int min, int max);
#pragma endregion CollisionFunctionality
}