added optional button to click to load game, added Windows build

This commit is contained in:
ohsqueezy 2023-10-18 00:13:24 -04:00
parent ac095283f4
commit 8d9ec69656
7 changed files with 566 additions and 486 deletions

View File

@ -49,9 +49,11 @@ SRC_O_FILES := $(notdir $(patsubst %.cpp, %.o, $(wildcard $(addprefix $(SRC_DIR)
##########################################################
BUILD_ROOT := build
X86_64_DEBUG_BUILD_DIR := $(BUILD_ROOT)/x86_64_debug
X86_64_BUILD_DIR := $(BUILD_ROOT)/x86_64
WASM_BUILD_DIR := $(BUILD_ROOT)/wasm
BUILD_DIRS := $(X86_64_BUILD_DIR) $(WASM_BUILD_DIR)
WINDOWS_BUILD_DIR := $(BUILD_ROOT)/win32
BUILD_DIRS := $(X86_64_BUILD_DIR) $(X86_64_DEBUG_BUILD_DIR) $(WASM_BUILD_DIR) $(WINDOWS_BUILD_DIR)
$(BUILD_DIRS):
mkdir -p $@
@ -169,24 +171,25 @@ $(addsuffix /Cakefoot.o, $(BUILD_DIRS)): $(SRC_DIR)/Cakefoot.cpp $(SRC_H_FILES)
# Linux build #
###############
LINUX_CFLAGS = -c -I$(SB_LIB_DIR) -I$(SB_SRC_DIR) $(SDL_CFLAGS)
LINUX_CFLAGS = -c -I$(SB_LIB_DIR) -I$(SB_SRC_DIR) $(SDL_CFLAGS) -DGLEW_STATIC
LINUX_CXXFLAGS = $(CFLAGS) --std=c++17
LINUX_LFLAGS = $(SDL_LFLAGS) -Wl/,--enable-new-dtags -lpthread -lGL -lGLESv2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer -lstdc++fs
LINUX_OBJ = $(addprefix $(X86_64_BUILD_DIR)/, glew.o SDL2_rotozoom.o SDL2_gfxPrimitives.o $(SB_O_FILES) $(SRC_O_FILES))
Cakefoot-linux_debug.x86_64 : CFLAGS = $(LINUX_CFLAGS) -g -Wall -Wextra -O0 -fsanitize=undefined
Cakefoot-linux_debug.x86_64 : CXXFLAGS = $(LINUX_CXXFLAGS)
Cakefoot-linux_debug.x86_64 : LFLAGS = $(LINUX_LFLAGS) -fsanitize=undefined
Cakefoot-linux_debug.x86_64 : $(LINUX_OBJ)
$(CREATE_FONT_SYMLINK)
$(CXX) $^ $(LFLAGS) -D__LINUX__ -o Cakefoot-linux_debug.x86_64
LINUX_DEBUG_OBJ = $(addprefix $(X86_64_DEBUG_BUILD_DIR)/, glew.o SDL2_rotozoom.o SDL2_gfxPrimitives.o $(SB_O_FILES) $(SRC_O_FILES))
Cakefoot-linux.x86_64 : CFLAGS = $(LINUX_CFLAGS) -O3
Cakefoot-linux.x86_64 : CXXFLAGS = $(LINUX_CXXFLAGS)
Cakefoot-linux.x86_64 : LFLAGS = $(LINUX_LFLAGS)
Cakefoot-linux.x86_64 : $(LINUX_OBJ)
$(CREATE_FONT_SYMLINK)
$(CXX) $^ $(LFLAGS) -D__LINUX__ -o Cakefoot-linux.x86_64
$(CXX) $^ $(LFLAGS) -D__LINUX__ -o $(X86_64_BUILD_DIR)/$@
Cakefoot-linux_debug.x86_64 : CFLAGS = $(LINUX_CFLAGS) -g -Wall -Wextra -O0 -fsanitize=undefined
Cakefoot-linux_debug.x86_64 : CXXFLAGS = $(LINUX_CXXFLAGS)
Cakefoot-linux_debug.x86_64 : LFLAGS = $(LINUX_LFLAGS) -fsanitize=undefined
Cakefoot-linux_debug.x86_64 : $(LINUX_DEBUG_OBJ)
$(CREATE_FONT_SYMLINK)
$(CXX) $^ $(LFLAGS) -D__LINUX__ -o $(X86_64_DEBUG_BUILD_DIR)/$@
#############
# Web build #
@ -195,8 +198,8 @@ Cakefoot-linux.x86_64 : $(LINUX_OBJ)
# Use Emscripten to output JavaScript
EMSCRIPTENHOME = $(HOME)/ext/software/emsdk/upstream/emscripten
EMSCRIPTEN_CFLAGS = -O0 -Wall -s USE_SDL=2 -s USE_SDL_IMAGE=2 -s SDL2_IMAGE_FORMATS="['png', 'jpg']" -s USE_SDL_TTF=2 -s USE_SDL_MIXER=2 \
--no-heap-copy -I $(SB_LIB_DIR) -I $(SB_SRC_DIR)
EMSCRIPTEN_CFLAGS = -O2 -Wall -s USE_SDL=2 -s USE_SDL_IMAGE=2 -s SDL2_IMAGE_FORMATS="['png', 'jpg']" -s USE_SDL_TTF=2 -s USE_SDL_MIXER=2 \
-I $(SB_LIB_DIR) -I $(SB_SRC_DIR)
EMSCRIPTEN_LFLAGS = -s MIN_WEBGL_VERSION=2 -s EXPORTED_FUNCTIONS="['_main', '_malloc']" \
-s LLD_REPORT_UNDEFINED -s NO_DISABLE_EXCEPTION_CATCHING -s FULL_ES3=1 -lidbfs.js \
-s TOTAL_MEMORY=200MB -s ALLOW_MEMORY_GROWTH=0
@ -212,7 +215,7 @@ cakefoot.js : CFLAGS = $(EMSCRIPTEN_CFLAGS)
cakefoot.js : CXXFLAGS = $(CFLAGS) --std=c++17
cakefoot.js : $(WASM_OBJS) $(EMSCRIPTEN_GAME_CONFIGS)
$(CREATE_FONT_SYMLINK)
$(CXX) $(filter-out $(EMSCRIPTEN_GAME_CONFIGS), $^) $(CXXFLAGS) $(EMSCRIPTEN_LFLAGS) $(EMSCRIPTEN_PRELOADS) -o cakefoot.js
$(CXX) $(filter-out $(EMSCRIPTEN_GAME_CONFIGS), $^) $(CXXFLAGS) $(EMSCRIPTEN_LFLAGS) $(EMSCRIPTEN_PRELOADS) -o $@
cakefoot_debug.html : CC = $(EMSCRIPTENHOME)/emcc
cakefoot_debug.html : CXX = $(EMSCRIPTENHOME)/em++
@ -220,8 +223,7 @@ cakefoot_debug.html : CFLAGS = $(EMSCRIPTEN_CFLAGS) -g2
cakefoot_debug.html : CXXFLAGS = $(CFLAGS) --std=c++17
cakefoot_debug.html : $(WASM_OBJS) $(EMSCRIPTEN_GAME_CONFIGS)
$(CREATE_FONT_SYMLINK)
$(CXX) $(filter-out $(EMSCRIPTEN_GAME_CONFIGS), $^) $(CXXFLAGS) $(EMSCRIPTEN_LFLAGS) $(EMSCRIPTEN_PRELOADS) --memoryprofiler --cpuprofiler \
-o cakefoot_debug.html
$(CXX) $(filter-out $(EMSCRIPTEN_GAME_CONFIGS), $^) $(CXXFLAGS) $(EMSCRIPTEN_LFLAGS) $(EMSCRIPTEN_PRELOADS) --memoryprofiler --cpuprofiler -o $@
#################
# Android build #
@ -282,22 +284,55 @@ $(ANDROID_BUILD_DIR)/app-debug.apk: $(ANDROID_BUILD_DIR) $(ANDROID_BUILD_DIR)/$(
ln -nsf app/build/outputs/apk/debug/app-debug.apk $(ANDROID_BUILD_DIR)
ln -nsf app/build/outputs/apk/debug/app-release-unsigned.apk $(ANDROID_BUILD_DIR)
###########
# Windows #
###########
# Set the paths to the directories for the SDL MinGW libraries
SDL_MINGW_ROOT := $(HOME)/ext/software/SDL2-mingw
SDL_MINGW := $(SDL_MINGW_ROOT)/SDL2-2.24.2/i686-w64-mingw32
SDL_IMG_MINGW := $(SDL_MINGW_ROOT)/SDL2_image-2.5.2/i686-w64-mingw32
SDL_TTF_MINGW := $(SDL_MINGW_ROOT)/SDL2_ttf-2.0.15/i686-w64-mingw32
SDL_MIXER_MINGW := $(SDL_MINGW_ROOT)/SDL2_mixer-2.5.2/i686-w64-mingw32
WINDOWS_OBJ := $(addprefix $(WINDOWS_BUILD_DIR)/, glew.o SDL2_rotozoom.o SDL2_gfxPrimitives.o $(SB_O_FILES) $(SRC_O_FILES))
# Set the compiler to the MinGW compilers
Cakefoot-win32.exe: CC = i686-w64-mingw32-gcc-posix
Cakefoot-win32.exe: CXX = i686-w64-mingw32-g++-posix
Cakefoot-win32.exe: CFLAGS = -Wall -Wextra -g -O0 -c -I$(SB_LIB_DIR) -I$(SB_SRC_DIR) -DGLEW_STATIC \
-I$(SDL_MINGW)/include/SDL2 -I$(SDL_IMG_MINGW)/include/SDL2 -I$(SDL_TTF_MINGW)/include/SDL2 -I$(SDL_MIXER_MINGW)/include/SDL2
Cakefoot-win32.exe: CXXFLAGS = $(CFLAGS) --std=c++17
Cakefoot-win32.exe: LFLAGS = -lpthread -lstdc++fs \
-L$(SDL_MINGW)/lib -L$(SDL_IMG_MINGW)/lib -L$(SDL_TTF_MINGW)/lib -L$(SDL_MIXER_MINGW)/lib -lmingw32 -lSDL2_image \
-lSDL2_ttf -lSDL2_mixer -lSDL2main -lSDL2 -lopengl32 -static-libstdc++ -static-libgcc
Cakefoot-win32.exe: $(WINDOWS_OBJ) config.json
$(CREATE_FONT_SYMLINK)
$(CXX) $(filter-out config.json, $^) $(LFLAGS) -o $(WINDOWS_BUILD_DIR)/$@
mkdir ${basename $@}
cp $(SDL_MINGW)/bin/*.dll $(SDL_IMG_MINGW)/bin/*.dll $(SDL_TTF_MINGW)/bin/*.dll $(SDL_MIXER_MINGW)/bin/*.dll ${basename $@}
cp /usr/i686-w64-mingw32/lib/libwinpthread-1.dll ${basename $@}
rsync -arR resource/ src/shaders/ config.json ${basename $@}
cp $(WINDOWS_BUILD_DIR)/$@ ${basename $@}
zip -r ${@:exe=zip} ${basename $@}
mv ${basename $@} /tmp
rm -rf /tmp/${basename $@}
mv ${@:exe=zip} $(WINDOWS_BUILD_DIR)
###################
# Make all builds #
###################
all : Cakefoot-linux_debug.x86_64 cakefoot.js cakefoot_debug.html
all : Cakefoot-linux.x86_64 Cakefoot-linux_debug.x86_64 cakefoot.js cakefoot_debug.html Cakefoot-win32.exe
#########################
# Clean up object files #
#########################
clean :
-find $(SRC_DIR) -iname "*.o" -delete
clean-all : clean
-find $(SB_SRC_DIR) -iname "*.o" -delete
-find $(SB_LIB_DIR) -iname "*.o" -delete
-find $(BUILD_ROOT) -iname "*.o" -delete
#############
# compiledb #

View File

@ -23,7 +23,8 @@
"level hud translation": [-1.64, 0.92],
"level hud foreground": [255.0, 255.0, 255.0, 255.0],
"level hud background": [0.0, 0.0, 0.0, 60.0],
"hitbox": false
"hitbox": false,
"use play button": true
},
"configuration":
@ -160,7 +161,10 @@
"volume on texture": "resource/vol.png",
"volume off texture": "resource/vol_off.png",
"volume translation": [-1.65, -0.85],
"volume scale": 0.08
"volume scale": 0.08,
"play texture": "resource/Play_Button.png",
"play translation": [0.0, 0.0],
"play scale": 0.6
},
"world": [

2
lib/sb

@ -1 +1 @@
Subproject commit d575307b15024bcf7259f06126fd8d61adb455ac
Subproject commit e168844fc5310581da43b32ac7ba8b2c2007a6e3

BIN
resource/Play_Button.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

File diff suppressed because it is too large Load Diff

View File

@ -95,7 +95,8 @@ private:
{"pause", sb::Pad<>()},
{"profile increment", sb::Pad<>()},
{"profile decrement", sb::Pad<>()},
{"volume", sb::Pad<>()}
{"volume", sb::Pad<>()},
{"play", sb::Pad<>()}
};
std::map<std::string, sb::Text> label = {
{"fps", sb::Text(font())},
@ -115,6 +116,7 @@ private:
std::map<std::string, std::shared_ptr<TTF_Font>> fonts;
std::map<std::string, sb::audio::Chunk> audio;
Character character {_configuration, audio};
bool use_play_button = false;
/*!
* Load sound effects and music into objects that can be used by the SDL mixer library. Use chunk objects for background music instead of

View File

@ -10,7 +10,7 @@ void Character::profile(const std::string& name)
/* Reload the texture */
_sprite.clear_textures();
_sprite.texture(profile()["animation frames"][0]);
_sprite.texture(profile()["animation frames"][0].get<std::string>());
_sprite.scale(size);
}