Initial build on macOS

This commit is contained in:
Alan Youngblood 2023-08-12 08:50:32 -04:00
parent bab3487115
commit a0c06ebe6a
24 changed files with 147 additions and 801 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

2
.gitignore vendored
View File

@ -108,3 +108,5 @@ _deps
# CMake artifacts # CMake artifacts
CMakeCache.txt CMakeCache.txt
# macOS finder files
.DS_Store

View File

@ -11,13 +11,15 @@ include(FindPkgConfig)
PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2) PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)
PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0) PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0)
PKG_SEARCH_MODULE(SDL2MIXER REQUIRED SDL2_mixer>=2.0.0) PKG_SEARCH_MODULE(SDL2MIXER REQUIRED SDL2_mixer>=2.0.0)
#PKG_SEARCH_MODULE(BOOSTFILESYSTEM boost_filesystem >=)
find_package(Boost COMPONENTS system filesystem REQUIRED)
# Point to our own cmake modules # Point to our own cmake modules
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/sdl2) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/sdl2)
# Add global definitions # Add global definitions
add_definitions("-Wall") add_definitions("-Wall")
include_directories(${PROJECT_NAME} ${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIRS} ${SDL2MIXER_INCLUDE_DIRS}) include_directories(${PROJECT_NAME} PRIVATE /usr/local/include/SDL2)
#add_custom_target(${TMXPARSER}) #add_custom_target(${TMXPARSER})
file(GLOB_RECURSE CSOURCES src/cjson/*.c) file(GLOB_RECURSE CSOURCES src/cjson/*.c)
@ -25,4 +27,4 @@ file(GLOB_RECURSE CPPSOURCES src/*.cpp)
add_executable(${PROJECT_NAME} ${CSOURCES} ${CPPSOURCES}) add_executable(${PROJECT_NAME} ${CSOURCES} ${CPPSOURCES})
install(TARGETS ${PROJECT_NAME} DESTINATION bin) install(TARGETS ${PROJECT_NAME} DESTINATION bin)
target_link_libraries(${PROJECT_NAME} PRIVATE ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2MIXER_LIBRARIES}) target_link_libraries(${PROJECT_NAME} PUBLIC Boost::system Boost::filesystem PRIVATE /usr/local/lib/libSDL2.dylib /usr/local/lib/libSDL2_image.dylib /usr/local/lib/libSDL2_mixer.dylib)

608
Makefile
View File

@ -1,608 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/ayoungblood/Projects/BeagleRescue
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/ayoungblood/Projects/BeagleRescue
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/ayoungblood/Projects/BeagleRescue/CMakeFiles /home/ayoungblood/Projects/BeagleRescue//CMakeFiles/progress.marks
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/ayoungblood/Projects/BeagleRescue/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named BeagleRescue
# Build rule for target.
BeagleRescue: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 BeagleRescue
.PHONY : BeagleRescue
# fast build rule for target.
BeagleRescue/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/build
.PHONY : BeagleRescue/fast
src/assetmgr/AssetManager.o: src/assetmgr/AssetManager.cpp.o
.PHONY : src/assetmgr/AssetManager.o
# target to build an object file
src/assetmgr/AssetManager.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/AssetManager.cpp.o
.PHONY : src/assetmgr/AssetManager.cpp.o
src/assetmgr/AssetManager.i: src/assetmgr/AssetManager.cpp.i
.PHONY : src/assetmgr/AssetManager.i
# target to preprocess a source file
src/assetmgr/AssetManager.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/AssetManager.cpp.i
.PHONY : src/assetmgr/AssetManager.cpp.i
src/assetmgr/AssetManager.s: src/assetmgr/AssetManager.cpp.s
.PHONY : src/assetmgr/AssetManager.s
# target to generate assembly for a file
src/assetmgr/AssetManager.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/AssetManager.cpp.s
.PHONY : src/assetmgr/AssetManager.cpp.s
src/assetmgr/GameObject.o: src/assetmgr/GameObject.cpp.o
.PHONY : src/assetmgr/GameObject.o
# target to build an object file
src/assetmgr/GameObject.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/GameObject.cpp.o
.PHONY : src/assetmgr/GameObject.cpp.o
src/assetmgr/GameObject.i: src/assetmgr/GameObject.cpp.i
.PHONY : src/assetmgr/GameObject.i
# target to preprocess a source file
src/assetmgr/GameObject.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/GameObject.cpp.i
.PHONY : src/assetmgr/GameObject.cpp.i
src/assetmgr/GameObject.s: src/assetmgr/GameObject.cpp.s
.PHONY : src/assetmgr/GameObject.s
# target to generate assembly for a file
src/assetmgr/GameObject.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/GameObject.cpp.s
.PHONY : src/assetmgr/GameObject.cpp.s
src/assetmgr/Map.o: src/assetmgr/Map.cpp.o
.PHONY : src/assetmgr/Map.o
# target to build an object file
src/assetmgr/Map.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/Map.cpp.o
.PHONY : src/assetmgr/Map.cpp.o
src/assetmgr/Map.i: src/assetmgr/Map.cpp.i
.PHONY : src/assetmgr/Map.i
# target to preprocess a source file
src/assetmgr/Map.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/Map.cpp.i
.PHONY : src/assetmgr/Map.cpp.i
src/assetmgr/Map.s: src/assetmgr/Map.cpp.s
.PHONY : src/assetmgr/Map.s
# target to generate assembly for a file
src/assetmgr/Map.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/Map.cpp.s
.PHONY : src/assetmgr/Map.cpp.s
src/assetmgr/MusicManager.o: src/assetmgr/MusicManager.cpp.o
.PHONY : src/assetmgr/MusicManager.o
# target to build an object file
src/assetmgr/MusicManager.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/MusicManager.cpp.o
.PHONY : src/assetmgr/MusicManager.cpp.o
src/assetmgr/MusicManager.i: src/assetmgr/MusicManager.cpp.i
.PHONY : src/assetmgr/MusicManager.i
# target to preprocess a source file
src/assetmgr/MusicManager.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/MusicManager.cpp.i
.PHONY : src/assetmgr/MusicManager.cpp.i
src/assetmgr/MusicManager.s: src/assetmgr/MusicManager.cpp.s
.PHONY : src/assetmgr/MusicManager.s
# target to generate assembly for a file
src/assetmgr/MusicManager.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/MusicManager.cpp.s
.PHONY : src/assetmgr/MusicManager.cpp.s
src/assetmgr/TextureManager.o: src/assetmgr/TextureManager.cpp.o
.PHONY : src/assetmgr/TextureManager.o
# target to build an object file
src/assetmgr/TextureManager.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/TextureManager.cpp.o
.PHONY : src/assetmgr/TextureManager.cpp.o
src/assetmgr/TextureManager.i: src/assetmgr/TextureManager.cpp.i
.PHONY : src/assetmgr/TextureManager.i
# target to preprocess a source file
src/assetmgr/TextureManager.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/TextureManager.cpp.i
.PHONY : src/assetmgr/TextureManager.cpp.i
src/assetmgr/TextureManager.s: src/assetmgr/TextureManager.cpp.s
.PHONY : src/assetmgr/TextureManager.s
# target to generate assembly for a file
src/assetmgr/TextureManager.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/assetmgr/TextureManager.cpp.s
.PHONY : src/assetmgr/TextureManager.cpp.s
src/cjson/cJSON.o: src/cjson/cJSON.c.o
.PHONY : src/cjson/cJSON.o
# target to build an object file
src/cjson/cJSON.c.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/cjson/cJSON.c.o
.PHONY : src/cjson/cJSON.c.o
src/cjson/cJSON.i: src/cjson/cJSON.c.i
.PHONY : src/cjson/cJSON.i
# target to preprocess a source file
src/cjson/cJSON.c.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/cjson/cJSON.c.i
.PHONY : src/cjson/cJSON.c.i
src/cjson/cJSON.s: src/cjson/cJSON.c.s
.PHONY : src/cjson/cJSON.s
# target to generate assembly for a file
src/cjson/cJSON.c.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/cjson/cJSON.c.s
.PHONY : src/cjson/cJSON.c.s
src/ecs/ECS.o: src/ecs/ECS.cpp.o
.PHONY : src/ecs/ECS.o
# target to build an object file
src/ecs/ECS.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/ecs/ECS.cpp.o
.PHONY : src/ecs/ECS.cpp.o
src/ecs/ECS.i: src/ecs/ECS.cpp.i
.PHONY : src/ecs/ECS.i
# target to preprocess a source file
src/ecs/ECS.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/ecs/ECS.cpp.i
.PHONY : src/ecs/ECS.cpp.i
src/ecs/ECS.s: src/ecs/ECS.cpp.s
.PHONY : src/ecs/ECS.s
# target to generate assembly for a file
src/ecs/ECS.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/ecs/ECS.cpp.s
.PHONY : src/ecs/ECS.cpp.s
src/game/Collision.o: src/game/Collision.cpp.o
.PHONY : src/game/Collision.o
# target to build an object file
src/game/Collision.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Collision.cpp.o
.PHONY : src/game/Collision.cpp.o
src/game/Collision.i: src/game/Collision.cpp.i
.PHONY : src/game/Collision.i
# target to preprocess a source file
src/game/Collision.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Collision.cpp.i
.PHONY : src/game/Collision.cpp.i
src/game/Collision.s: src/game/Collision.cpp.s
.PHONY : src/game/Collision.s
# target to generate assembly for a file
src/game/Collision.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Collision.cpp.s
.PHONY : src/game/Collision.cpp.s
src/game/Game.o: src/game/Game.cpp.o
.PHONY : src/game/Game.o
# target to build an object file
src/game/Game.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Game.cpp.o
.PHONY : src/game/Game.cpp.o
src/game/Game.i: src/game/Game.cpp.i
.PHONY : src/game/Game.i
# target to preprocess a source file
src/game/Game.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Game.cpp.i
.PHONY : src/game/Game.cpp.i
src/game/Game.s: src/game/Game.cpp.s
.PHONY : src/game/Game.s
# target to generate assembly for a file
src/game/Game.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Game.cpp.s
.PHONY : src/game/Game.cpp.s
src/game/GameStateManager.o: src/game/GameStateManager.cpp.o
.PHONY : src/game/GameStateManager.o
# target to build an object file
src/game/GameStateManager.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/GameStateManager.cpp.o
.PHONY : src/game/GameStateManager.cpp.o
src/game/GameStateManager.i: src/game/GameStateManager.cpp.i
.PHONY : src/game/GameStateManager.i
# target to preprocess a source file
src/game/GameStateManager.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/GameStateManager.cpp.i
.PHONY : src/game/GameStateManager.cpp.i
src/game/GameStateManager.s: src/game/GameStateManager.cpp.s
.PHONY : src/game/GameStateManager.s
# target to generate assembly for a file
src/game/GameStateManager.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/GameStateManager.cpp.s
.PHONY : src/game/GameStateManager.cpp.s
src/game/Main.o: src/game/Main.cpp.o
.PHONY : src/game/Main.o
# target to build an object file
src/game/Main.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Main.cpp.o
.PHONY : src/game/Main.cpp.o
src/game/Main.i: src/game/Main.cpp.i
.PHONY : src/game/Main.i
# target to preprocess a source file
src/game/Main.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Main.cpp.i
.PHONY : src/game/Main.cpp.i
src/game/Main.s: src/game/Main.cpp.s
.PHONY : src/game/Main.s
# target to generate assembly for a file
src/game/Main.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Main.cpp.s
.PHONY : src/game/Main.cpp.s
src/game/StateMachine.o: src/game/StateMachine.cpp.o
.PHONY : src/game/StateMachine.o
# target to build an object file
src/game/StateMachine.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/StateMachine.cpp.o
.PHONY : src/game/StateMachine.cpp.o
src/game/StateMachine.i: src/game/StateMachine.cpp.i
.PHONY : src/game/StateMachine.i
# target to preprocess a source file
src/game/StateMachine.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/StateMachine.cpp.i
.PHONY : src/game/StateMachine.cpp.i
src/game/StateMachine.s: src/game/StateMachine.cpp.s
.PHONY : src/game/StateMachine.s
# target to generate assembly for a file
src/game/StateMachine.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/StateMachine.cpp.s
.PHONY : src/game/StateMachine.cpp.s
src/game/Vector2D.o: src/game/Vector2D.cpp.o
.PHONY : src/game/Vector2D.o
# target to build an object file
src/game/Vector2D.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Vector2D.cpp.o
.PHONY : src/game/Vector2D.cpp.o
src/game/Vector2D.i: src/game/Vector2D.cpp.i
.PHONY : src/game/Vector2D.i
# target to preprocess a source file
src/game/Vector2D.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Vector2D.cpp.i
.PHONY : src/game/Vector2D.cpp.i
src/game/Vector2D.s: src/game/Vector2D.cpp.s
.PHONY : src/game/Vector2D.s
# target to generate assembly for a file
src/game/Vector2D.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/game/Vector2D.cpp.s
.PHONY : src/game/Vector2D.cpp.s
src/ui/UINineSlice.o: src/ui/UINineSlice.cpp.o
.PHONY : src/ui/UINineSlice.o
# target to build an object file
src/ui/UINineSlice.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/ui/UINineSlice.cpp.o
.PHONY : src/ui/UINineSlice.cpp.o
src/ui/UINineSlice.i: src/ui/UINineSlice.cpp.i
.PHONY : src/ui/UINineSlice.i
# target to preprocess a source file
src/ui/UINineSlice.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/ui/UINineSlice.cpp.i
.PHONY : src/ui/UINineSlice.cpp.i
src/ui/UINineSlice.s: src/ui/UINineSlice.cpp.s
.PHONY : src/ui/UINineSlice.s
# target to generate assembly for a file
src/ui/UINineSlice.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/ui/UINineSlice.cpp.s
.PHONY : src/ui/UINineSlice.cpp.s
src/ui/UIText.o: src/ui/UIText.cpp.o
.PHONY : src/ui/UIText.o
# target to build an object file
src/ui/UIText.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/ui/UIText.cpp.o
.PHONY : src/ui/UIText.cpp.o
src/ui/UIText.i: src/ui/UIText.cpp.i
.PHONY : src/ui/UIText.i
# target to preprocess a source file
src/ui/UIText.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/ui/UIText.cpp.i
.PHONY : src/ui/UIText.cpp.i
src/ui/UIText.s: src/ui/UIText.cpp.s
.PHONY : src/ui/UIText.s
# target to generate assembly for a file
src/ui/UIText.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/BeagleRescue.dir/build.make CMakeFiles/BeagleRescue.dir/src/ui/UIText.cpp.s
.PHONY : src/ui/UIText.cpp.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... BeagleRescue"
@echo "... src/assetmgr/AssetManager.o"
@echo "... src/assetmgr/AssetManager.i"
@echo "... src/assetmgr/AssetManager.s"
@echo "... src/assetmgr/GameObject.o"
@echo "... src/assetmgr/GameObject.i"
@echo "... src/assetmgr/GameObject.s"
@echo "... src/assetmgr/Map.o"
@echo "... src/assetmgr/Map.i"
@echo "... src/assetmgr/Map.s"
@echo "... src/assetmgr/MusicManager.o"
@echo "... src/assetmgr/MusicManager.i"
@echo "... src/assetmgr/MusicManager.s"
@echo "... src/assetmgr/TextureManager.o"
@echo "... src/assetmgr/TextureManager.i"
@echo "... src/assetmgr/TextureManager.s"
@echo "... src/cjson/cJSON.o"
@echo "... src/cjson/cJSON.i"
@echo "... src/cjson/cJSON.s"
@echo "... src/ecs/ECS.o"
@echo "... src/ecs/ECS.i"
@echo "... src/ecs/ECS.s"
@echo "... src/game/Collision.o"
@echo "... src/game/Collision.i"
@echo "... src/game/Collision.s"
@echo "... src/game/Game.o"
@echo "... src/game/Game.i"
@echo "... src/game/Game.s"
@echo "... src/game/GameStateManager.o"
@echo "... src/game/GameStateManager.i"
@echo "... src/game/GameStateManager.s"
@echo "... src/game/Main.o"
@echo "... src/game/Main.i"
@echo "... src/game/Main.s"
@echo "... src/game/StateMachine.o"
@echo "... src/game/StateMachine.i"
@echo "... src/game/StateMachine.s"
@echo "... src/game/Vector2D.o"
@echo "... src/game/Vector2D.i"
@echo "... src/game/Vector2D.s"
@echo "... src/ui/UINineSlice.o"
@echo "... src/ui/UINineSlice.i"
@echo "... src/ui/UINineSlice.s"
@echo "... src/ui/UIText.o"
@echo "... src/ui/UIText.i"
@echo "... src/ui/UIText.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

BIN
assets/.DS_Store vendored Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
assets/textures/.DS_Store vendored Normal file

Binary file not shown.

BIN
src/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -6,7 +6,7 @@
*/ */
#include "MusicManager.h" #include "MusicManager.h"
#include <SDL2/SDL_mixer.h> #include <SDL_mixer.h>
Mix_Music* MusicManager::LoadMusic(const char* path){ Mix_Music* MusicManager::LoadMusic(const char* path){
Mix_Music* music = Mix_LoadMUS(path); Mix_Music* music = Mix_LoadMUS(path);

View File

@ -9,7 +9,7 @@
#define SRC_MUSICMANAGER_H_ #define SRC_MUSICMANAGER_H_
#include "../game/Game.hpp" #include "../game/Game.hpp"
#include <SDL2/SDL_mixer.h> #include <SDL_mixer.h>
class MusicManager class MusicManager
{ {

View File

@ -8,7 +8,6 @@
#ifndef SRC_TEXTUREMANAGER_H_ #ifndef SRC_TEXTUREMANAGER_H_
#define SRC_TEXTUREMANAGER_H_ #define SRC_TEXTUREMANAGER_H_
// #include <SDL2/SDL_image.h>
#include "../game/Game.hpp" #include "../game/Game.hpp"
class TextureManager class TextureManager

View File

@ -1,6 +1,6 @@
{ {
"GameName":"Kaiju Save Earth", "GameName": "Kaiju Save Earth",
"Developers": "Alan Youngblood", "Developers": "Alan Youngblood",
"LibraryDevelopers": "Sam Lantinga, Dave Gamble, Carl Birch, Job Vranish, David Lafreniere, Bayle Jonathan, Robin Berg Pettersen", "LibraryDevelopers": "Sam Lantinga, Dave Gamble, Carl Birch, Job Vranish, David Lafreniere, Bayle Jonathan, Robin Berg Pettersen, Beman Dawes, Andrey Semashev",
"SpecialThanks":"Nic Allen, Brian Lhota, Rodrigo Monteiro" "SpecialThanks": "Nic Allen, Brian Lhota, Rodrigo Monteiro"
} }

View File

@ -9,7 +9,7 @@
#define SRC_ECS_COLLIDERCOMPONENT_H_ #define SRC_ECS_COLLIDERCOMPONENT_H_
#include <string> #include <string>
#include <SDL2/SDL.h> #include <SDL.h>
#include "Components.h" #include "Components.h"
#include "ECS.h" #include "ECS.h"
#include "../assetmgr/TextureManager.h" #include "../assetmgr/TextureManager.h"

View File

@ -9,7 +9,7 @@
#define SRC_ECS_SPRITECOMPONENT_H_ #define SRC_ECS_SPRITECOMPONENT_H_
#include "Components.h" #include "Components.h"
#include <SDL2/SDL.h> #include <SDL.h>
#include "../assetmgr/TextureManager.h" #include "../assetmgr/TextureManager.h"
#include "Animation.h" #include "Animation.h"
#include <map> #include <map>
@ -56,7 +56,7 @@ public:
// SpriteComponent() = default; // SpriteComponent() = default;
SpriteComponent(std::string id, SpriteType sType) SpriteComponent(std::string id, SpriteType sType)
{ {
spriteType = sType; spriteType = sType;
setTex(id); setTex(id);
} }
@ -68,37 +68,30 @@ public:
{ {
std::ifstream fin(json); std::ifstream fin(json);
if(fin.is_open()){
} else {
std::cout<<"json file is NOT open"<<std::endl;
}
if(fin.fail()){ if(fin.fail()){
std::cout<<"json file open fail"<<std::endl; std::cerr<<"ERROR opening json file"<<std::endl;
} else{ } else if (fin.is_open()){
std::ifstream jsonText(json);
std::ostringstream tmp;
tmp << jsonText.rdbuf();
std::string aJson = tmp.str();
cJSON * animJson = cJSON_Parse(aJson.c_str());
cJSON * meta = cJSON_GetObjectItem(animJson, "meta");
cJSON * frameTags = cJSON_GetObjectItem(meta,"frameTags");
int tagsCount = cJSON_GetArraySize(frameTags);
for (int t = 0; t < tagsCount; t++)
{
cJSON * animItem = cJSON_GetArrayItem(frameTags,t);
cJSON * nameJson = cJSON_GetObjectItem(animItem, "name");
const char * name = cJSON_Print(nameJson);
int fromFrame = cJSON_GetObjectItem(animItem, "from")->valueint;
int toFrame = cJSON_GetObjectItem(animItem, "to")->valueint;
Animation anim = Animation(fromFrame,toFrame,100);
animations.emplace(name, anim);
Play(name);
}
} }
std::ifstream jsonText(json);
std::ostringstream tmp;
tmp << jsonText.rdbuf();
std::string aJson = tmp.str();
cJSON * animJson = cJSON_Parse(aJson.c_str());
cJSON * meta = cJSON_GetObjectItem(animJson, "meta");
cJSON * frameTags = cJSON_GetObjectItem(meta,"frameTags");
int tagsCount = cJSON_GetArraySize(frameTags);
for (int t = 0; t < tagsCount; t++)
{
cJSON * animItem = cJSON_GetArrayItem(frameTags,t);
cJSON * nameJson = cJSON_GetObjectItem(animItem, "name");
const char * name = cJSON_Print(nameJson);
int fromFrame = cJSON_GetObjectItem(animItem, "from")->valueint;
int toFrame = cJSON_GetObjectItem(animItem, "to")->valueint;
Animation anim = Animation(fromFrame,toFrame,100);
animations.emplace(name, anim);
Play(name);
}
Animation moveN = Animation(0,1,100); Animation moveN = Animation(0,1,100);
animations.emplace("move-n", moveN); animations.emplace("move-n", moveN);
Animation moveW = Animation(2,1,100); Animation moveW = Animation(2,1,100);

View File

@ -9,7 +9,7 @@
#define SRC_ECS_TILECOMPONENT_H_ #define SRC_ECS_TILECOMPONENT_H_
#include "ECS.h" #include "ECS.h"
#include <SDL2/SDL.h> #include <SDL.h>
#include "../assetmgr/AssetManager.h" #include "../assetmgr/AssetManager.h"
class TileComponent : public Component class TileComponent : public Component

View File

@ -10,7 +10,7 @@
#define SRC_ECS_TILEMAPCOMPONENT_H_ #define SRC_ECS_TILEMAPCOMPONENT_H_
#include "ECS.h" #include "ECS.h"
#include <SDL2/SDL.h> #include <SDL.h>
#include "../assetmgr/AssetManager.h" #include "../assetmgr/AssetManager.h"
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>
@ -46,26 +46,29 @@ public:
{ {
// TILESON ~~~~~~~~~~~ // TILESON ~~~~~~~~~~~
const std::filesystem::path jsonPath = std::filesystem::u8path(mapPath); //const std::filesystem::path jsonPath = std::filesystem::u8path(mapPath);
map = t.parse(jsonPath); const std::filesystem::path jsonPath = std::filesystem::u8path("/Users/ayoungblood/Projects/KaijuSaveEarth/assets/maps/kaiju-city-map.json");
map = t.parse(jsonPath);
if(map->getStatus() == tson::ParseStatus::OK) std::cout << "Trying to load json tile map from: " << jsonPath << std::endl;
{ if(map->getStatus() == tson::ParseStatus::OK)
tson::Tileset *tileset = map->getTileset(tsName); {
//std::cout << "tsName: " << tsName << std::endl; printf("Map File Loaded!! \n");
tson::Tileset *tileset = map->getTileset(tsName);
std::cout << "tsName: " << tsName << std::endl;
std::string fullPath = tileset->getImage(); std::string fullPath = tileset->getImage();
//std::cout << "fullPath: " << fullPath << std::endl; std::cout << "fullPath: " << fullPath << std::endl;
//size_t charPos = fullPath.find("assets"); //size_t charPos = fullPath.find("assets");
//fullPath.erase(0,charPos); //fullPath.erase(0,charPos);
std::string prependPath = std::string("assets/maps/"); std::string prependPath = std::string("assets/maps/");
std::string wholePath = prependPath + fullPath; std::string localPath = prependPath + fullPath;
//std::cout << "fullPath: " << wholePath << std::endl; std::string wholePath = "/Users/ayoungblood/Projects/KaijuSaveEarth/" + localPath;
std::cout << "fullPath: " << wholePath << std::endl;
tson::Layer *tileLayer = map->getLayer(tileLayerName); //This is a Layer tson::Layer *tileLayer = map->getLayer(tileLayerName); //This is a Layer
std::string texName = tileLayer->getName(); std::string texName = tileLayer->getName();
Game::assets->AddTexture(texName, wholePath.c_str()); Game::assets->AddTexture(texName, wholePath.c_str());
setTex(texName); setTex(texName);
globalScale = gScale; globalScale = gScale;
printf("Added texture for tilemap.\n");
tson::Layer *collisionLayer = map->getLayer(collisionLayerName); tson::Layer *collisionLayer = map->getLayer(collisionLayerName);
tilesWide = map->getSize().x; tilesWide = map->getSize().x;
@ -92,7 +95,7 @@ public:
tileSet[element] = srcRect; tileSet[element] = srcRect;
} }
} }
printf("Tile Set Setup Completed.\n");
if(tileLayer->getType() == tson::LayerType::TileLayer) if(tileLayer->getType() == tson::LayerType::TileLayer)
{ {
destRects.resize(tilesWide*tilesHigh); destRects.resize(tilesWide*tilesHigh);
@ -113,35 +116,37 @@ public:
} }
destRect.w = destRect.h = tileWidth * gScale; destRect.w = destRect.h = tileWidth * gScale;
} }
tson::Layer *myLayer = map->getLayer("Tile Layer 1");
for (int r = 0;r<map->getSize().y;r++){ printf("Tilemap setup completed\n");
// Next cycle through each column or tile in that row: // tson::Layer *myLayer = map->getLayer("Tile Layer 1");
for (int c = 0;c<map->getSize().x;c++){ // for (int r = 0;r<map->getSize().y;r++){
int i = r*map->getSize().x+c; // // Next cycle through each column or tile in that row:
int elem = c+r*map->getSize().x; // for (int c = 0;c<map->getSize().x;c++){
tson::Tile *myTile = myLayer->getTileData(c,r); // int i = r*map->getSize().x+c;
int tid = myTile->getId()-1; // int elem = c+r*map->getSize().x;
//std::cout << myLayer->getTileData(1,1)->getId() << std::endl; // tson::Tile *myTile = myLayer->getTileData(c,r);
// TextureManager::Draw(texture, tileSet[tid], destRects[elem], SDL_FLIP_NONE); // int tid = myTile->getId()-1;
//std::cout << "c,r: " << c << ", " << r << std::endl; // //std::cout << myLayer->getTileData(1,1)->getId() << std::endl;
if(!tid){ // // TextureManager::Draw(texture, tileSet[tid], destRects[elem], SDL_FLIP_NONE);
//printf("got nullptr\n"); // //std::cout << "c,r: " << c << ", " << r << std::endl;
// printf("found valid tid\n"); // if(!tid){
} else { // //printf("got nullptr\n");
//std::cout << "tid: " << tid << std::endl; // // printf("found valid tid\n");
} // } else {
//std::cout << " elem: " << elem << std::endl; // //std::cout << "tid: " << tid << std::endl;
//std::cout << "i" << i << std::endl; // }
} // //std::cout << " elem: " << elem << std::endl;
} // //std::cout << "i" << i << std::endl;
// }
// }
// tson::Tile *testTile = myLayer->getTileData(0,4); // tson::Tile *testTile = myLayer->getTileData(0,4);
// int myTid = testTile->getId()-1; // int myTid = testTile->getId()-1;
//printf("Completed tilemap init\n"); printf("Completed tilemap init\n");
//std::cout << "destRects.size " << destRects.size() << std::endl; //std::cout << "destRects.size " << destRects.size() << std::endl;
} else { } else {
printf("Failed to load Tileson map\n"); // printf("Failed to load Tileson map\n");
std::cout << map->getStatusMessage(); std::cout << map->getStatusMessage() << std::endl;
} }
} }
void update() override void update() override
@ -194,4 +199,3 @@ public:
}; };
#endif /* SRC_ECS_TILEMAPCOMPONENT_H_ */ #endif /* SRC_ECS_TILEMAPCOMPONENT_H_ */

View File

@ -13,7 +13,7 @@
#define ASCII_ROW_COUNT 16 #define ASCII_ROW_COUNT 16
#include "Components.h" #include "Components.h"
#include <SDL2/SDL.h> #include <SDL.h>
#include "../assetmgr/TextureManager.h" #include "../assetmgr/TextureManager.h"
#include "../assetmgr/AssetManager.h" #include "../assetmgr/AssetManager.h"
#include <stdio.h> #include <stdio.h>

View File

@ -8,7 +8,7 @@
#ifndef SRC_COLLISION_H_ #ifndef SRC_COLLISION_H_
#define SRC_COLLISION_H_ #define SRC_COLLISION_H_
#include <SDL2/SDL.h> #include <SDL.h>
// #include "Vector2D.h" // #include "Vector2D.h"
class ColliderComponent; class ColliderComponent;

View File

@ -55,7 +55,7 @@ int Game::nineSliceY0 = 4;
int Game::nineSliceY1 = 12; int Game::nineSliceY1 = 12;
// auto& enemy(manager.addEntity()); // auto& enemy(manager.addEntity());
auto& puppy(manager.addEntity()); //auto& puppy(manager.addEntity());
// auto& scoreboard(manager.addEntity()); // auto& scoreboard(manager.addEntity());
auto& uiInfo(manager.addEntity()); auto& uiInfo(manager.addEntity());
@ -119,7 +119,7 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g
if(SDL_Init(SDL_INIT_EVERYTHING) == 0) if(SDL_Init(SDL_INIT_EVERYTHING) == 0)
{ {
window = SDL_CreateWindow(title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, flags); window = SDL_CreateWindow(title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, flags);
SDL_SetWindowBordered(window,SDL_FALSE); SDL_SetWindowBordered(window,SDL_TRUE);
if(!window) if(!window)
{ {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"Couldn't create window: %s", SDL_GetError()); SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"Couldn't create window: %s", SDL_GetError());
@ -152,8 +152,6 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g
assets->AddSoundClip("bwoop","assets/audio/sfx/bwoop.wav"); assets->AddSoundClip("bwoop","assets/audio/sfx/bwoop.wav");
// map = new Map("terrain",globalScale,16);
// std::string myText = "Find lost puppies!\nThey need your help!";
std::string myText = "U to Start"; std::string myText = "U to Start";
//Set Font and UI NineSlice Sizes here //Set Font and UI NineSlice Sizes here
@ -172,54 +170,9 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g
my9Slice = new UINineSlice("textBox"); my9Slice = new UINineSlice("textBox");
my9Slice->MakeSlices("textBox",nineSliceSize.x,nineSliceSize.y,nineSliceX0,nineSliceX1,nineSliceY0,nineSliceY1,myDestRect,globalScale,Game::groupUI_Layer0); my9Slice->MakeSlices("textBox",nineSliceSize.x,nineSliceSize.y,nineSliceX0,nineSliceX1,nineSliceY0,nineSliceY1,myDestRect,globalScale,Game::groupUI_Layer0);
// std::cout << "camera.w " << camera.w << std::endl;
// uiInfo.addComponent<TransformComponent>(camera.w/gScale-94,10,72*gScale,96*gScale,gScale);
// uiInfo.addComponent<UITextComponent>("font", "CollisionHori: Vert: Jump: P.y : P.dy: YVec: ", fontSize.x,fontSize.y, 1);
// uiInfo.addComponent<UITextComponent>("font", "Player PTiX: PTiY: P.x: P.y : coll: Px2: tson: ", fontSize.x,fontSize.y, gScale);
// uiInfo.addComponent<UITextComponent>("font", "Player PTiX: PTiY: P.x: P.y : coll: ", fontSize.x,fontSize.y, gScale);
// uiInfo.addGroup(groupUI_Layer3);
//
// uiCamXInfo.addComponent<TransformComponent>(camera.w/gScale-48,23,40*gScale,12*gScale,gScale);
// uiCamXInfo.addComponent<UITextComponent>("font", "nan", fontSize.x,fontSize.y, gScale);
// uiCamXInfo.addGroup(groupUI_Layer3);
//
// uiCamYInfo.addComponent<TransformComponent>(camera.w/gScale-48,36,40*gScale,12*gScale,gScale);
// uiCamYInfo.addComponent<UITextComponent>("font", "nan", fontSize.x,fontSize.y, gScale);
// uiCamYInfo.addGroup(groupUI_Layer3);
//
// uiPlayerXInfo.addComponent<TransformComponent>(camera.w/gScale-49,49,40*gScale,12*gScale,gScale);
// uiPlayerXInfo.addComponent<UITextComponent>("font", "nan", fontSize.x,fontSize.y, gScale);
// uiPlayerXInfo.addGroup(groupUI_Layer3);
//
// uiPlayerYInfo.addComponent<TransformComponent>(camera.w/gScale-48,62,40*gScale,12*gScale,gScale);
// uiPlayerYInfo.addComponent<UITextComponent>("font", "nan",fontSize.x,fontSize.y, gScale);
// uiPlayerYInfo.addGroup(groupUI_Layer3);
//
// uiBoundary1Info.addComponent<TransformComponent>(camera.w/gScale-48,75,128*gScale,12*gScale,gScale);
// uiBoundary1Info.addComponent<UITextComponent>("font", "nan",fontSize.x,fontSize.y, gScale);
// uiBoundary1Info.addGroup(groupUI_Layer3);
// uiBoundary2Info.addComponent<TransformComponent>(camera.w/gScale-64,88,128*gScale,12*gScale,gScale);
// uiBoundary2Info.addComponent<UITextComponent>("font", "nan",fontSize.x,fontSize.y, gScale);
// uiBoundary2Info.addGroup(groupUI_Layer3);
//
// uiBoundary3Info.addComponent<TransformComponent>(camera.w/gScale-64,101,128*gScale,12*gScale,gScale);
// uiBoundary3Info.addComponent<UITextComponent>("font", "nan",fontSize.x,fontSize.y, gScale);
// uiBoundary3Info.addGroup(groupUI_Layer3);
// debug UI box
// SDL_Rect debugBoxRect = SDL_Rect();
// debugBoxRect.x = camera.w-(100*gScale);
// debugBoxRect.y = 4*gScale;
// debugBoxRect.w = 98*gScale;
// debugBoxRect.h = 112*gScale;
// debugBox = new UINineSlice("textBox");
// debugBox->MakeSlices("textBox",nineSliceSize.x,nineSliceSize.y,nineSliceX0,nineSliceX1,nineSliceY0,nineSliceY1,debugBoxRect,globalScale,Game::groupUI_Layer2);
//ecs implementation //ecs implementation
// player.addComponent<TransformComponent>(860*globalScale,640*globalScale,22,42,globalScale);
player.addComponent<TransformComponent>(150*gScale,100*gScale,32,32,globalScale,3); // 180,120 player.addComponent<TransformComponent>(150*gScale,100*gScale,32,32,globalScale,3); // 180,120
player.addComponent<SpriteComponent>("player", SpriteComponent::spriteAnimation, "assets/textures/actors/kaijuturtle.json"); player.addComponent<SpriteComponent>("player", SpriteComponent::spriteAnimation, "assets/textures/actors/kaijuturtle.json");
@ -235,15 +188,11 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g
gameScene.addComponent<TileMapComponent>("assets/maps/kaiju-city-map.json","kaiju-city","Tile Layer 1","Collision",gScale,player.getComponent<TransformComponent>().position.x+player.getComponent<TransformComponent>().width/2,player.getComponent<TransformComponent>().position.y+player.getComponent<TransformComponent>().height/2); //150,100 gameScene.addComponent<TileMapComponent>("assets/maps/kaiju-city-map.json","kaiju-city","Tile Layer 1","Collision",gScale,player.getComponent<TransformComponent>().position.x+player.getComponent<TransformComponent>().width/2,player.getComponent<TransformComponent>().position.y+player.getComponent<TransformComponent>().height/2); //150,100
gameScene.addGroup(groupMap); gameScene.addGroup(groupMap);
// printf("Completed loading Tilemap\n"); // printf("Completed loading Tilemap\n");
// std::cout << "LevelMap: " << levelMap.x << ", " << levelMap.y << ", " << levelMap.w << ", " << levelMap.h << std::endl;
playerPosition = Vector2D().Zero(); playerPosition = Vector2D().Zero();
pVel = Vector2D().Zero(); pVel = Vector2D().Zero();
// puppy.addComponent<TransformComponent>(1024*globalScale,210*globalScale,36,30,globalScale); printf("Init Completed\n");
// puppy.addComponent<SpriteComponent>("puppy", SpriteComponent::spriteObject);
// puppy.addGroup(groupObjects);
//printf("Init Completed\n");
} else { } else {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't Initialize SDL: %s", SDL_GetError()); SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't Initialize SDL: %s", SDL_GetError());
isRunning = false; isRunning = false;
@ -285,7 +234,7 @@ void Game::update()
// { // {
// const char* initText = "Loading..."; // const char* initText = "Loading...";
// text->ParseString(initText,12,22,gScale,"init"); // text->ParseString(initText,12,22,gScale,"init");
// const char* titleText = "Beagle Rescue"; // const char* titleText = "Kaiju";
// const char* gameOverText = "Game Over"; // const char* gameOverText = "Game Over";
// } // }

View File

@ -7,9 +7,9 @@
#ifndef GAME_HPP_ #ifndef GAME_HPP_
#define GAME_HPP_ #define GAME_HPP_
#include <SDL2/SDL.h> #include <SDL.h>
#include <SDL2/SDL_image.h> #include <SDL_image.h>
#include <SDL2/SDL_mixer.h> #include <SDL_mixer.h>
#include <stdio.h> #include <stdio.h>
#include <iostream> #include <iostream>
#include <vector> #include <vector>

View File

@ -11,37 +11,57 @@
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
#include <sstream> #include <sstream>
//#include <mach-o/dyld.h>
#include <boost/filesystem.hpp>
Game *game = nullptr; Game *game = nullptr;
int main(int argc, const char * argv[]) int main(int argc, const char * argv[])
{ {
// printf("Program has started, but not initialized yet.\n");
const int FPS = 60; const int FPS = 60;
const int frameDelay = 1000 / FPS; const int frameDelay = 1000 / FPS;
Uint64 frameStart; Uint64 frameStart;
int frameTime; int frameTime;
boost::filesystem::path p{argv[0]};
p = absolute(p).parent_path();
std::cout << "boost path: " << p << std::endl;
// ============================= // =============================
// Load cJSON config.json file // Load cJSON config.json file
// ============================= // =============================
// Starting with Error Checking // Starting with Error Checking
std::string configPath = "src/config/config.json"; //std::string configPath = "src/config/config.json";
std::string configPath = "/Users/ayoungblood/Projects/KaijuSaveEarth/src/config/config.json";
// /Users/ayoungblood/Projects/KaijuSaveEarth
// std::string fullPath = p.c_str() + "/" + configPath;
std::ifstream fin(configPath); std::ifstream fin(configPath);
// std::cout << "Attempting to load: " << configPath << std::endl;
if(fin.is_open()){ // std::cout << "Current working Dir: " << std::filesystem::current_path() << std::endl;
std::ifstream jsonText("src/config/config.json"); if(!fin.is_open()){
std::cerr<<"ERROR: config.json not found or opened"<<std::endl;
} else {
printf("config.json loaded successfully.\n");
}
/*std::ifstream jsonText("src/config/config.json");
std::ostringstream tmp; std::ostringstream tmp;
tmp << jsonText.rdbuf(); tmp << jsonText.rdbuf();
std::string json = tmp.str(); std::string json = tmp.str();
cJSON * myJSON = cJSON_Parse(json.c_str()); cJSON * myJSON = cJSON_Parse(json.c_str());
cJSON * windowName = cJSON_GetObjectItemCaseSensitive(myJSON, "WindowName"); cJSON * windowName = cJSON_GetObjectItemCaseSensitive(myJSON, "WindowName");
cJSON * windowSize = cJSON_GetObjectItem(myJSON, "WindowSize"); cJSON * windowSize = cJSON_GetObjectItem(myJSON, "WindowSize");*/
int windowWidth = cJSON_GetObjectItem(windowSize, "w")->valueint; // int windowWidth = cJSON_GetObjectItem(windowSize, "w")->valueint;
int windowHeight = cJSON_GetObjectItem(windowSize, "h")->valueint; // int windowHeight = cJSON_GetObjectItem(windowSize, "h")->valueint;
int windowFS = cJSON_GetObjectItem(myJSON, "WindowFullScreen")->valueint; // int windowFS = cJSON_GetObjectItem(myJSON, "WindowFullScreen")->valueint;
int globalScale = cJSON_GetObjectItem(myJSON, "GlobalScale")->valueint; // int globalScale = cJSON_GetObjectItem(myJSON, "GlobalScale")->valueint;
int windowWidth = 64;
int windowHeight = 64;
int windowFS = 0;
int globalScale = 10;
bool isWindowFS; bool isWindowFS;
std::string windowName = "KaijuSaveEarth";
if (windowFS==0) if (windowFS==0)
{ {
isWindowFS = false; isWindowFS = false;
@ -51,31 +71,30 @@ int main(int argc, const char * argv[])
} }
windowWidth = windowWidth*globalScale; windowWidth = windowWidth*globalScale;
windowHeight = windowHeight*globalScale; windowHeight = windowHeight*globalScale;
game = new Game(); game = new Game();
game->init(windowName->valuestring, windowWidth, windowHeight, isWindowFS, globalScale); // game->init(windowName->valuestring, windowWidth, windowHeight, isWindowFS, globalScale);
game->init(windowName.c_str(), windowWidth, windowHeight, isWindowFS, globalScale);
// cJSON memory management // cJSON memory management
cJSON_Delete(myJSON); // cJSON_Delete(myJSON);
while (game->running()) while (game->running())
{ {
frameStart = SDL_GetTicks64(); frameStart = SDL_GetTicks64();
game->handleEvents(); game->handleEvents();
game->update(); game->update();
game->render(); game->render();
frameTime = SDL_GetTicks64() - frameStart; frameTime = SDL_GetTicks64() - frameStart;
if(frameDelay > frameTime) if(frameDelay > frameTime)
{ {
SDL_Delay(frameDelay - frameTime); SDL_Delay(frameDelay - frameTime);
} }
} }
game->clean(); game->clean();
} else { // }
std::cout<<"config.json not found or opened"<<std::endl;
}
if(fin.fail()){ if(fin.fail()){
std::cout<<"config.json load failed"<<std::endl; std::cout<<"config.json load failed"<<std::endl;

View File

@ -8,7 +8,7 @@
#ifndef SRC_UININESLICE_H_ #ifndef SRC_UININESLICE_H_
#define SRC_UININESLICE_H_ #define SRC_UININESLICE_H_
#include <SDL2/SDL.h> #include <SDL.h>
#include "string" #include "string"
#include "../game/Game.hpp" #include "../game/Game.hpp"

View File

@ -12,7 +12,7 @@
#define ASCII_COUNT 96 #define ASCII_COUNT 96
#define ASCII_ROW_COUNT 16 #define ASCII_ROW_COUNT 16
#include <SDL2/SDL.h> #include <SDL.h>
#include <iostream> #include <iostream>
#include "../game/Game.hpp" #include "../game/Game.hpp"
#include "../assetmgr/TextureManager.h" #include "../assetmgr/TextureManager.h"