From a4f341596d270837cc977286f06331bb2197d201 Mon Sep 17 00:00:00 2001 From: The-Tysonator Date: Thu, 10 Aug 2023 20:55:01 +0100 Subject: [PATCH] first commit --- .gitignore | 2 + WindowManager/WindowManager.cpp | 66 +++++++++++++++++++ WindowManager/WindowManager.h | 30 +++++++++ main.cpp | 108 ++++++++++++++++++++++++++++++++ tiles.png | Bin 0 -> 11016 bytes world/Chunk.cpp | 29 +++++++++ world/Chunk.h | 27 ++++++++ 7 files changed, 262 insertions(+) create mode 100644 .gitignore create mode 100644 WindowManager/WindowManager.cpp create mode 100644 WindowManager/WindowManager.h create mode 100644 main.cpp create mode 100644 tiles.png create mode 100644 world/Chunk.cpp create mode 100644 world/Chunk.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1601f60 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.vscode +notes \ No newline at end of file diff --git a/WindowManager/WindowManager.cpp b/WindowManager/WindowManager.cpp new file mode 100644 index 0000000..781ea9d --- /dev/null +++ b/WindowManager/WindowManager.cpp @@ -0,0 +1,66 @@ + +#include +#include "WindowManager.h" + + + +WindowManager::WindowManager( char* title, float screen_width, float screen_height ) { + _title = title; + _screenWidth = screen_width; + _screenHeight = screen_height; + _aspectRatio = (double)screen_width / screen_height; + InitWindow(_screenWidth, _screenHeight, _title); + Screen = LoadRenderTexture(_screenWidth, _screenHeight); + ScaledScreen = LoadRenderTexture(_screenWidth, _screenHeight); + _scaledHeight = screen_height; + _scaledWidth = screen_width; +} + + +void WindowManager::UpdateScale() { + // Changed + bool hasChanged = (_screenWidth != GetScreenWidth()) || (_screenHeight != GetScreenHeight()); + + if ( hasChanged ) { + + // Update Scaled Size + int width = GetScreenWidth(); + int height = GetScreenHeight(); + double aspectRatio = (double)width / height; + + int newWidth = 0; + int newHeight = 0; + + if (aspectRatio > _aspectRatio) { + _scaledWidth = height * _aspectRatio; + _scaledHeight = height; + } else { + _scaledWidth = width; + _scaledHeight = width / _aspectRatio; + } + + // Update Texture Size + ScaledScreen = LoadRenderTexture(_scaledWidth, _scaledHeight); + + } +} + + + +void WindowManager::Display () { + + BeginTextureMode(ScaledScreen); + DrawTexturePro(Screen.texture, { 0, 0, static_cast(_screenWidth), -static_cast(_screenHeight) }, { 0, 0, static_cast(ScaledScreen.texture.width), static_cast(ScaledScreen.texture.height) }, { 0, 0 }, 0.0f, WHITE); + EndTextureMode(); + + float xStart = -(GetScreenWidth() - _scaledWidth) / 2; + float yStart = -(GetScreenHeight() - _scaledHeight) / 2; + + BeginDrawing(); + ClearBackground(BLACK); + + + DrawTexturePro(Screen.texture, { 0, 0, static_cast(_screenWidth), -static_cast(_screenHeight) }, { 0, 0, static_cast(ScaledScreen.texture.width), static_cast(ScaledScreen.texture.height) }, { xStart, yStart }, 0.0f, WHITE); + + EndDrawing(); +} \ No newline at end of file diff --git a/WindowManager/WindowManager.h b/WindowManager/WindowManager.h new file mode 100644 index 0000000..a328252 --- /dev/null +++ b/WindowManager/WindowManager.h @@ -0,0 +1,30 @@ +#ifndef WINDOWMANAGER_H +#define WINDOWMANAGER_H + +#include + + +class WindowManager +{ + public: + WindowManager(char* title, float screen_width, float screen_height); + void UpdateScale (); + void Display (); + RenderTexture2D Screen; + RenderTexture2D ScaledScreen; + + private: + + char* _title; + float _screenWidth; + float _screenHeight; + double _aspectRatio; + + int _scaledWidth; + int _scaledHeight; + + + +}; + +#endif diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..ac360f1 --- /dev/null +++ b/main.cpp @@ -0,0 +1,108 @@ +#include +#include + +#include +#include +#include + +#include "./world/Chunk.h" +#include "./WindowManager/WindowManager.h" + + + + +int main() +{ + + + // Initialize the window and raylib + WindowManager windowManager("My Title", 320, 240); + + std::string userInput; + + SetTargetFPS(60); + + Texture2D texture = LoadTextureFromImage(ImageFromImage(LoadImage("tiles.png"), { 0, 0, 8, 8 })); + std::map myMap; + myMap["grass"] = &texture; + Chunk chunk(100, 100, 50, BLUE); + chunk.LoadTextures(myMap); + + // Enable window resizing + SetWindowState(FLAG_WINDOW_RESIZABLE); + + while (!WindowShouldClose()) + { + + windowManager.UpdateScale(); + + BeginTextureMode(windowManager.Screen); + ClearBackground(BLACK); + DrawText("Drawing on Render Texture", 10, 10, 20, RED); + DrawRectangle(160, 120, 160, 120, RED); + + ClearBackground(GRAY); + + double xStart = (GetScreenWidth() - windowManager.ScaledScreen.texture.width) / 2; + double yStart = (GetScreenHeight() - windowManager.ScaledScreen.texture.height) / 2; + + // Display the user input on the screen + DrawText(userInput.c_str(), 10, 10, 20, BLACK); + DrawRectangle(200, 200 / 2 - 50, 100, 100, RED); + chunk.Draw(); + + EndTextureMode(); + + // Scaled Texture + + + + float deltaTime = GetFrameTime(); + // Update + + + // Check for mouse input + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) + { + int mouseX = GetMouseX(); + int mouseY = GetMouseY(); + + // Print the mouse coordinates + printf("Mouse clicked at (%d, %d)\n", mouseX, mouseY); + } + + + // Check for user input + if (IsKeyPressed(KEY_BACKSPACE) && userInput.length() > 0) + { + // Remove the last character from the input string + userInput.pop_back(); + } + else + { + // Check if any key is being pressed + int key = GetKeyPressed(); + + + if ( IsKeyPressed(KEY_A) ) { + } + + + if (key > 0) + { + // Append the pressed key to the input string + userInput += static_cast(key); + } + } + + // Display + windowManager.Display(); + + + } + + // Close the window and raylib + CloseWindow(); + + return 0; +} diff --git a/tiles.png b/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5d66c0756199a7519014790e68da23add1a9fd GIT binary patch literal 11016 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 +#include "Chunk.h" +#include +#include +#include +#include +#include + + + + +Chunk::Chunk(int x, int y, int size, Color color) + : m_x(x), m_y(y), m_size(size), m_color(color) +{} + + +void Chunk::LoadTextures(std::map textures) { + // Access and process the textures + myMap = textures; +} + + + +void Chunk::Draw() +{ + if (myMap["grass"]) DrawTexturePro(*(myMap["grass"]), { 0, 0, static_cast(myMap["grass"]->width), static_cast(myMap["grass"]->height) }, + { 0, 0, static_cast(myMap["grass"]->width * 2), static_cast(myMap["grass"]->height * 2) }, + { 0, 0 }, 0.0f, WHITE); +} diff --git a/world/Chunk.h b/world/Chunk.h new file mode 100644 index 0000000..3d0e68f --- /dev/null +++ b/world/Chunk.h @@ -0,0 +1,27 @@ +#ifndef SQUARE_H +#define SQUARE_H + +#include +#include +#include +#include + + +class Chunk +{ + public: + Chunk(int x, int y, int size, Color color); + void Draw(); + void LoadTextures(std::map textures); + + private: + int chunkTiles[8][8]; + int m_x; + int m_y; + int m_size; + Color m_color; + std::map myMap; + +}; + +#endif