Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,18 @@
# Other Files #
# =========== #
*.dll
*.xcf
*.xcf



# =========== #
# Cmake Files #
# =========== #
cmake-build-*/
[Bb]uild/

# =========== #
# IDE Files #
# =========== #
.idea/
.cache/
23 changes: 23 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
cmake_minimum_required(VERSION 3.20)

project(SnakeGame)

find_package(EnTT CONFIG REQUIRED)
find_package(SDL2 CONFIG REQUIRED)
find_package(SDL2_image CONFIG REQUIRED)
find_package(SDL2_ttf CONFIG REQUIRED)


file(GLOB_RECURSE ${PROJECT_NAME}_SRC Src/*.*)

add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_SRC})
target_link_libraries(${PROJECT_NAME} PRIVATE EnTT::EnTT)
target_link_libraries(${PROJECT_NAME}
PRIVATE
$<TARGET_NAME_IF_EXISTS:SDL2::SDL2main>
$<IF:$<TARGET_EXISTS:SDL2::SDL2>,SDL2::SDL2,SDL2::SDL2-static>
)
target_link_libraries(${PROJECT_NAME} PRIVATE $<IF:$<TARGET_EXISTS:SDL2_image::SDL2_image>,SDL2_image::SDL2_image,SDL2_image::SDL2_image-static>)
target_link_libraries(${PROJECT_NAME} PRIVATE $<IF:$<TARGET_EXISTS:SDL2_ttf::SDL2_ttf>,SDL2_ttf::SDL2_ttf,SDL2_ttf::SDL2_ttf-static>)

file(COPY ${CMAKE_SOURCE_DIR}/Assets DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
2 changes: 1 addition & 1 deletion Src/CollisionHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ void checkPlayerCollision(entt::registry & registry)
auto view = registry.view<Collider>();
for (auto entity : view)
{
auto& col = view.get(entity);
auto& col = view.get<Collider>(entity);

//game over collision
if (col.layer == ColliderLayer::CL_snakebody || col.layer == ColliderLayer::CL_boundary)
Expand Down
52 changes: 26 additions & 26 deletions Src/Factories.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ entt::entity makeBoundary(entt::registry & registry, float xPos, float yPos, flo
rect.y = (int)yPos;
rect.w = (int)width;
rect.h = (int)height;
registry.assign<Collider>(e, ColliderLayer::CL_boundary, rect);
registry.emplace<Collider>(e, ColliderLayer::CL_boundary, rect);
return e;
}

Expand All @@ -20,63 +20,63 @@ entt::entity makePickup(entt::registry & registry)
srand(time(NULL));

const entt::entity e = registry.create();
registry.assign<Pickup>(e);
registry.assign<Sprite>(e, "Assets/pickup.png");
registry.assign<Transform>(e);
registry.assign<Collider>(e, ColliderLayer::CL_pickup);
registry.emplace<Pickup>(e);
registry.emplace<Sprite>(e, "Assets/pickup.png");
registry.emplace<Transform>(e);
registry.emplace<Collider>(e, ColliderLayer::CL_pickup);
return e;
}

entt::entity makeGameOverText(entt::registry & registry, int ptSize, SDL_Color color)
{
const entt::entity e1 = registry.create();
registry.assign<GameOverMainText>(e1);
registry.assign<Text>(e1, "Assets/open_sans.ttf", ptSize, color, 0, 0);
registry.emplace<GameOverMainText>(e1);
registry.emplace<Text>(e1, "Assets/open_sans.ttf", ptSize, color, 0, 0);

const entt::entity e2 = registry.create();
registry.assign<GameOverSubText>(e2);
registry.assign<Text>(e2, "Assets/open_sans.ttf", (2 * ptSize) / 3, color, 0, 50);
registry.emplace<GameOverSubText>(e2);
registry.emplace<Text>(e2, "Assets/open_sans.ttf", (2 * ptSize) / 3, color, 0, 50);

return e1;
}

entt::entity makeScoreText(entt::registry & registry, int ptSize, SDL_Color color)
{
const entt::entity e = registry.create();
registry.assign<ScoreText>(e);
registry.assign<Text>(e, "Assets/open_sans.ttf", ptSize, color, -SNAKE_SCREEN_WIDTH / 2 + 24, -SNAKE_SCREEN_HEIGHT / 2 + 24);
registry.emplace<ScoreText>(e);
registry.emplace<Text>(e, "Assets/open_sans.ttf", ptSize, color, -SNAKE_SCREEN_WIDTH / 2 + 24, -SNAKE_SCREEN_HEIGHT / 2 + 24);
return e;
}

entt::entity makeSnakeHead(entt::registry& registry, float xPos, float yPos, float xScl, float yScl)
{
const entt::entity e = registry.create();
registry.assign<SnakeHead>(e);
registry.assign<SnakePart>(e);
registry.assign<Sprite>(e, "Assets/snake_head.png");
registry.assign<Transform>(e, xPos, yPos, xScl, yScl, Direction::up);
registry.assign<Collider>(e, ColliderLayer::CL_snakehead);
registry.emplace<SnakeHead>(e);
registry.emplace<SnakePart>(e);
registry.emplace<Sprite>(e, "Assets/snake_head.png");
registry.emplace<Transform>(e, xPos, yPos, xScl, yScl, Direction::up);
registry.emplace<Collider>(e, ColliderLayer::CL_snakehead);
return e;
}

entt::entity makeSnakeTail(entt::registry& registry, float xPos, float yPos, float xScl, float yScl)
{
const entt::entity e = registry.create();
registry.assign<SnakeTail>(e);
registry.assign<SnakePart>(e);
registry.assign<Sprite>(e, "Assets/snake_tail.png");
registry.assign<Transform>(e, xPos, yPos, xScl, yScl, Direction::up);
registry.assign<Collider>(e, ColliderLayer::CL_snakebody);
registry.emplace<SnakeTail>(e);
registry.emplace<SnakePart>(e);
registry.emplace<Sprite>(e, "Assets/snake_tail.png");
registry.emplace<Transform>(e, xPos, yPos, xScl, yScl, Direction::up);
registry.emplace<Collider>(e, ColliderLayer::CL_snakebody);
return e;
}

entt::entity makeSnakeBody(entt::registry& registry, float xPos, float yPos, float xScl, float yScl)
{
const entt::entity e = registry.create();
registry.assign<SnakeBody>(e);
registry.assign<SnakePart>(e);
registry.assign<Sprite>(e, "Assets/snake_body.png");
registry.assign<Transform>(e, xPos, yPos, xScl, yScl, Direction::up);
registry.assign<Collider>(e, ColliderLayer::CL_snakebody);
registry.emplace<SnakeBody>(e);
registry.emplace<SnakePart>(e);
registry.emplace<Sprite>(e, "Assets/snake_body.png");
registry.emplace<Transform>(e, xPos, yPos, xScl, yScl, Direction::up);
registry.emplace<Collider>(e, ColliderLayer::CL_snakebody);
return e;
}
10 changes: 5 additions & 5 deletions Src/Game.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -171,14 +171,14 @@ void Game::render(entt::registry& registry)
auto sprView = registry.view<Sprite>();
for (auto entity : sprView)
{
sprView.get(entity).render();
sprView.get<Sprite>(entity).render();
}

//render text
auto txtView = registry.view<Text>();
for (auto entity : txtView)
{
txtView.get(entity).render();
txtView.get<Text>(entity).render();
}

SDL_RenderPresent(renderer);
Expand All @@ -189,16 +189,16 @@ void Game::cleanEntt(entt::registry& registry)
auto sprView = registry.view<Sprite>();
for (auto e : sprView)
{
sprView.get(e).clean();
sprView.get<Sprite>(e).clean();
}

auto txtView = registry.view<Text>();
for (auto e : txtView)
{
txtView.get(e).clean();
txtView.get<Text>(e).clean();
}

registry.reset();
registry.clear();

LOG("EnTT Cleaned");
}
Expand Down
8 changes: 4 additions & 4 deletions Src/PlayerSnake.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ bool updateSnake(entt::registry & registry)
auto view = registry.view<SnakeHead>();
for (auto entity : view)
{
return view.get(entity).update();
return view.get<SnakeHead>(entity).update();
}

return false;
Expand Down Expand Up @@ -143,7 +143,7 @@ void moveSnake(entt::registry& registry)

void destroySnake(entt::registry & registry)
{
registry.reset<SnakeHead>();
registry.reset<SnakeBody>();
registry.reset<SnakeTail>();
registry.clear<SnakeHead>();
registry.clear<SnakeBody>();
registry.clear<SnakeTail>();
}