diff --git a/Flappy/Assets/bird.png b/Assets/bird.png similarity index 100% rename from Flappy/Assets/bird.png rename to Assets/bird.png diff --git a/Flappy/Assets/ceiling.png b/Assets/ceiling.png similarity index 100% rename from Flappy/Assets/ceiling.png rename to Assets/ceiling.png diff --git a/Flappy/Assets/font_big.psd b/Assets/font_big.psd similarity index 100% rename from Flappy/Assets/font_big.psd rename to Assets/font_big.psd diff --git a/Flappy/Assets/font_big_0.png b/Assets/font_big_0.png similarity index 100% rename from Flappy/Assets/font_big_0.png rename to Assets/font_big_0.png diff --git a/Flappy/Assets/font_big_1.png b/Assets/font_big_1.png similarity index 100% rename from Flappy/Assets/font_big_1.png rename to Assets/font_big_1.png diff --git a/Flappy/Assets/font_big_2.png b/Assets/font_big_2.png similarity index 100% rename from Flappy/Assets/font_big_2.png rename to Assets/font_big_2.png diff --git a/Flappy/Assets/font_big_3.png b/Assets/font_big_3.png similarity index 100% rename from Flappy/Assets/font_big_3.png rename to Assets/font_big_3.png diff --git a/Flappy/Assets/font_big_4.png b/Assets/font_big_4.png similarity index 100% rename from Flappy/Assets/font_big_4.png rename to Assets/font_big_4.png diff --git a/Flappy/Assets/font_big_5.png b/Assets/font_big_5.png similarity index 100% rename from Flappy/Assets/font_big_5.png rename to Assets/font_big_5.png diff --git a/Flappy/Assets/font_big_6.png b/Assets/font_big_6.png similarity index 100% rename from Flappy/Assets/font_big_6.png rename to Assets/font_big_6.png diff --git a/Flappy/Assets/font_big_7.png b/Assets/font_big_7.png similarity index 100% rename from Flappy/Assets/font_big_7.png rename to Assets/font_big_7.png diff --git a/Flappy/Assets/font_big_8.png b/Assets/font_big_8.png similarity index 100% rename from Flappy/Assets/font_big_8.png rename to Assets/font_big_8.png diff --git a/Flappy/Assets/font_big_9.png b/Assets/font_big_9.png similarity index 100% rename from Flappy/Assets/font_big_9.png rename to Assets/font_big_9.png diff --git a/Flappy/Assets/font_small.psd b/Assets/font_small.psd similarity index 100% rename from Flappy/Assets/font_small.psd rename to Assets/font_small.psd diff --git a/Flappy/Assets/font_small_0.png b/Assets/font_small_0.png similarity index 100% rename from Flappy/Assets/font_small_0.png rename to Assets/font_small_0.png diff --git a/Flappy/Assets/font_small_1.png b/Assets/font_small_1.png similarity index 100% rename from Flappy/Assets/font_small_1.png rename to Assets/font_small_1.png diff --git a/Flappy/Assets/font_small_2.png b/Assets/font_small_2.png similarity index 100% rename from Flappy/Assets/font_small_2.png rename to Assets/font_small_2.png diff --git a/Flappy/Assets/font_small_3.png b/Assets/font_small_3.png similarity index 100% rename from Flappy/Assets/font_small_3.png rename to Assets/font_small_3.png diff --git a/Flappy/Assets/font_small_4.png b/Assets/font_small_4.png similarity index 100% rename from Flappy/Assets/font_small_4.png rename to Assets/font_small_4.png diff --git a/Flappy/Assets/font_small_5.png b/Assets/font_small_5.png similarity index 100% rename from Flappy/Assets/font_small_5.png rename to Assets/font_small_5.png diff --git a/Flappy/Assets/font_small_6.png b/Assets/font_small_6.png similarity index 100% rename from Flappy/Assets/font_small_6.png rename to Assets/font_small_6.png diff --git a/Flappy/Assets/font_small_7.png b/Assets/font_small_7.png similarity index 100% rename from Flappy/Assets/font_small_7.png rename to Assets/font_small_7.png diff --git a/Flappy/Assets/font_small_8.png b/Assets/font_small_8.png similarity index 100% rename from Flappy/Assets/font_small_8.png rename to Assets/font_small_8.png diff --git a/Flappy/Assets/font_small_9.png b/Assets/font_small_9.png similarity index 100% rename from Flappy/Assets/font_small_9.png rename to Assets/font_small_9.png diff --git a/Flappy/Assets/land.png b/Assets/land.png similarity index 100% rename from Flappy/Assets/land.png rename to Assets/land.png diff --git a/Flappy/Assets/medal_bronze.png b/Assets/medal_bronze.png similarity index 100% rename from Flappy/Assets/medal_bronze.png rename to Assets/medal_bronze.png diff --git a/Flappy/Assets/medal_gold.png b/Assets/medal_gold.png similarity index 100% rename from Flappy/Assets/medal_gold.png rename to Assets/medal_gold.png diff --git a/Flappy/Assets/medal_platinum.png b/Assets/medal_platinum.png similarity index 100% rename from Flappy/Assets/medal_platinum.png rename to Assets/medal_platinum.png diff --git a/Flappy/Assets/medal_silver.png b/Assets/medal_silver.png similarity index 100% rename from Flappy/Assets/medal_silver.png rename to Assets/medal_silver.png diff --git a/Flappy/Assets/pipe-down.png b/Assets/pipe-down.png similarity index 100% rename from Flappy/Assets/pipe-down.png rename to Assets/pipe-down.png diff --git a/Flappy/Assets/pipe-up.png b/Assets/pipe-up.png similarity index 100% rename from Flappy/Assets/pipe-up.png rename to Assets/pipe-up.png diff --git a/Flappy/Assets/pipe.png b/Assets/pipe.png similarity index 100% rename from Flappy/Assets/pipe.png rename to Assets/pipe.png diff --git a/Flappy/Assets/replay.png b/Assets/replay.png similarity index 100% rename from Flappy/Assets/replay.png rename to Assets/replay.png diff --git a/Flappy/Assets/scoreboard.png b/Assets/scoreboard.png similarity index 100% rename from Flappy/Assets/scoreboard.png rename to Assets/scoreboard.png diff --git a/Flappy/Assets/sky.png b/Assets/sky.png similarity index 100% rename from Flappy/Assets/sky.png rename to Assets/sky.png diff --git a/Flappy/Assets/sounds/sfx_die.ogg b/Assets/sounds/sfx_die.ogg similarity index 100% rename from Flappy/Assets/sounds/sfx_die.ogg rename to Assets/sounds/sfx_die.ogg diff --git a/Flappy/Assets/sounds/sfx_hit.ogg b/Assets/sounds/sfx_hit.ogg similarity index 100% rename from Flappy/Assets/sounds/sfx_hit.ogg rename to Assets/sounds/sfx_hit.ogg diff --git a/Flappy/Assets/sounds/sfx_point.ogg b/Assets/sounds/sfx_point.ogg similarity index 100% rename from Flappy/Assets/sounds/sfx_point.ogg rename to Assets/sounds/sfx_point.ogg diff --git a/Flappy/Assets/sounds/sfx_swooshing.ogg b/Assets/sounds/sfx_swooshing.ogg similarity index 100% rename from Flappy/Assets/sounds/sfx_swooshing.ogg rename to Assets/sounds/sfx_swooshing.ogg diff --git a/Flappy/Assets/sounds/sfx_wing.ogg b/Assets/sounds/sfx_wing.ogg similarity index 100% rename from Flappy/Assets/sounds/sfx_wing.ogg rename to Assets/sounds/sfx_wing.ogg diff --git a/Flappy/Assets/splash.png b/Assets/splash.png similarity index 100% rename from Flappy/Assets/splash.png rename to Assets/splash.png diff --git a/Flappy/Assets/thumb.png b/Assets/thumb.png similarity index 100% rename from Flappy/Assets/thumb.png rename to Assets/thumb.png diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..a8c0271 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,33 @@ +# Check versions message(STATUS "CMake version: ${CMAKE_VERSION}") +cmake_minimum_required(VERSION 3.1) +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + +# Set the project name +set(PNAME floppy-bird) +project(${PNAME}) + +# Set up variables, and find SFML +set(SFML_ROOT root CACHE STRING "User specified path") +set(SFML_COMPONENTS graphics window system network audio) +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + +find_package(SFML 2.1 COMPONENTS ${SFML_COMPONENTS} REQUIRED) +message(STATUS "SFML found: ${SFML_FOUND}") + +# Include the directories for the main program, GL, CL and SFML's headers +include_directories(${SFML_INCLUDE_DIR}) +include_directories(include) + +# Set the sources, allows VS to filter them properly +file(GLOB SOURCES "*.cpp") +file(GLOB HEADERS "*.h") + +add_executable(${PNAME} ${SOURCES}) + +# Link CL, GL, and SFML +target_link_libraries (${PNAME} ${SFML_LIBRARIES} ${SFML_DEPENDENCIES}) + +# Setup to use C++11 + others +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") +set_property(TARGET ${PNAME} PROPERTY CXX_STANDARD 11) # Use C++11 \ No newline at end of file diff --git a/FindSFML.cmake b/FindSFML.cmake new file mode 100644 index 0000000..fdea1eb --- /dev/null +++ b/FindSFML.cmake @@ -0,0 +1,368 @@ +# This script locates the SFML library +# ------------------------------------ +# +# Usage +# ----- +# +# When you try to locate the SFML libraries, you must specify which modules you want to use (system, window, graphics, network, audio, main). +# If none is given, the SFML_LIBRARIES variable will be empty and you'll end up linking to nothing. +# example: +# find_package(SFML COMPONENTS graphics window system) # find the graphics, window and system modules +# +# You can enforce a specific version, either MAJOR.MINOR or only MAJOR. +# If nothing is specified, the version won't be checked (i.e. any version will be accepted). +# example: +# find_package(SFML COMPONENTS ...) # no specific version required +# find_package(SFML 2 COMPONENTS ...) # any 2.x version +# find_package(SFML 2.4 COMPONENTS ...) # version 2.4 or greater +# +# By default, the dynamic libraries of SFML will be found. To find the static ones instead, +# you must set the SFML_STATIC_LIBRARIES variable to TRUE before calling find_package(SFML ...). +# Since you have to link yourself all the SFML dependencies when you link it statically, the following +# additional variables are defined: SFML_XXX_DEPENDENCIES and SFML_DEPENDENCIES (see their detailed +# description below). +# In case of static linking, the SFML_STATIC macro will also be defined by this script. +# example: +# set(SFML_STATIC_LIBRARIES TRUE) +# find_package(SFML 2 COMPONENTS network system) +# +# On Mac OS X if SFML_STATIC_LIBRARIES is not set to TRUE then by default CMake will search for frameworks unless +# CMAKE_FIND_FRAMEWORK is set to "NEVER" for example. Please refer to CMake documentation for more details. +# Moreover, keep in mind that SFML frameworks are only available as release libraries unlike dylibs which +# are available for both release and debug modes. +# +# If SFML is not installed in a standard path, you can use the SFML_ROOT CMake (or environment) variable +# to tell CMake where SFML is. +# +# Output +# ------ +# +# This script defines the following variables: +# - For each specified module XXX (system, window, graphics, network, audio, main): +# - SFML_XXX_LIBRARY_DEBUG: the name of the debug library of the xxx module (set to SFML_XXX_LIBRARY_RELEASE is no debug version is found) +# - SFML_XXX_LIBRARY_RELEASE: the name of the release library of the xxx module (set to SFML_XXX_LIBRARY_DEBUG is no release version is found) +# - SFML_XXX_LIBRARY: the name of the library to link to for the xxx module (includes both debug and optimized names if necessary) +# - SFML_XXX_FOUND: true if either the debug or release library of the xxx module is found +# - SFML_XXX_DEPENDENCIES: the list of libraries the module depends on, in case of static linking +# - SFML_LIBRARIES: the list of all libraries corresponding to the required modules +# - SFML_FOUND: true if all the required modules are found +# - SFML_INCLUDE_DIR: the path where SFML headers are located (the directory containing the SFML/Config.hpp file) +# - SFML_DEPENDENCIES: the list of libraries SFML depends on, in case of static linking +# +# example: +# find_package(SFML 2 COMPONENTS system window graphics audio REQUIRED) +# include_directories(${SFML_INCLUDE_DIR}) +# add_executable(myapp ...) +# target_link_libraries(myapp ${SFML_LIBRARIES}) + +# define the SFML_STATIC macro if static build was chosen +if(SFML_STATIC_LIBRARIES) + add_definitions(-DSFML_STATIC) +endif() + +# define the list of search paths for headers and libraries +set(FIND_SFML_PATHS + ${SFML_ROOT} + $ENV{SFML_ROOT} + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt) + +# find the SFML include directory +find_path(SFML_INCLUDE_DIR SFML/Config.hpp + PATH_SUFFIXES include + PATHS ${FIND_SFML_PATHS}) + +# check the version number +set(SFML_VERSION_OK TRUE) +if(SFML_FIND_VERSION AND SFML_INCLUDE_DIR) + # extract the major and minor version numbers from SFML/Config.hpp + # we have to handle framework a little bit differently: + if("${SFML_INCLUDE_DIR}" MATCHES "SFML.framework") + set(SFML_CONFIG_HPP_INPUT "${SFML_INCLUDE_DIR}/Headers/Config.hpp") + else() + set(SFML_CONFIG_HPP_INPUT "${SFML_INCLUDE_DIR}/SFML/Config.hpp") + endif() + FILE(READ "${SFML_CONFIG_HPP_INPUT}" SFML_CONFIG_HPP_CONTENTS) + STRING(REGEX REPLACE ".*#define SFML_VERSION_MAJOR ([0-9]+).*" "\\1" SFML_VERSION_MAJOR "${SFML_CONFIG_HPP_CONTENTS}") + STRING(REGEX REPLACE ".*#define SFML_VERSION_MINOR ([0-9]+).*" "\\1" SFML_VERSION_MINOR "${SFML_CONFIG_HPP_CONTENTS}") + STRING(REGEX REPLACE ".*#define SFML_VERSION_PATCH ([0-9]+).*" "\\1" SFML_VERSION_PATCH "${SFML_CONFIG_HPP_CONTENTS}") + if (NOT "${SFML_VERSION_PATCH}" MATCHES "^[0-9]+$") + set(SFML_VERSION_PATCH 0) + endif() + math(EXPR SFML_REQUESTED_VERSION "${SFML_FIND_VERSION_MAJOR} * 10000 + ${SFML_FIND_VERSION_MINOR} * 100 + ${SFML_FIND_VERSION_PATCH}") + + # if we could extract them, compare with the requested version number + if (SFML_VERSION_MAJOR) + # transform version numbers to an integer + math(EXPR SFML_VERSION "${SFML_VERSION_MAJOR} * 10000 + ${SFML_VERSION_MINOR} * 100 + ${SFML_VERSION_PATCH}") + + # compare them + if(SFML_VERSION LESS SFML_REQUESTED_VERSION) + set(SFML_VERSION_OK FALSE) + endif() + else() + # SFML version is < 2.0 + if (SFML_REQUESTED_VERSION GREATER 10900) + set(SFML_VERSION_OK FALSE) + set(SFML_VERSION_MAJOR 1) + set(SFML_VERSION_MINOR x) + set(SFML_VERSION_PATCH x) + endif() + endif() +endif() + +# find the requested modules +set(SFML_FOUND TRUE) # will be set to false if one of the required modules is not found +foreach(FIND_SFML_COMPONENT ${SFML_FIND_COMPONENTS}) + string(TOLOWER ${FIND_SFML_COMPONENT} FIND_SFML_COMPONENT_LOWER) + string(TOUPPER ${FIND_SFML_COMPONENT} FIND_SFML_COMPONENT_UPPER) + set(FIND_SFML_COMPONENT_NAME sfml-${FIND_SFML_COMPONENT_LOWER}) + + # no suffix for sfml-main, it is always a static library + if(FIND_SFML_COMPONENT_LOWER STREQUAL "main") + # release library + find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE + NAMES ${FIND_SFML_COMPONENT_NAME} + PATH_SUFFIXES lib64 lib + PATHS ${FIND_SFML_PATHS}) + + # debug library + find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG + NAMES ${FIND_SFML_COMPONENT_NAME}-d + PATH_SUFFIXES lib64 lib + PATHS ${FIND_SFML_PATHS}) + else() + # static release library + find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_RELEASE + NAMES ${FIND_SFML_COMPONENT_NAME}-s + PATH_SUFFIXES lib64 lib + PATHS ${FIND_SFML_PATHS}) + + # static debug library + find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_DEBUG + NAMES ${FIND_SFML_COMPONENT_NAME}-s-d + PATH_SUFFIXES lib64 lib + PATHS ${FIND_SFML_PATHS}) + + # dynamic release library + find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_RELEASE + NAMES ${FIND_SFML_COMPONENT_NAME} + PATH_SUFFIXES lib64 lib + PATHS ${FIND_SFML_PATHS}) + + # dynamic debug library + find_library(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_DEBUG + NAMES ${FIND_SFML_COMPONENT_NAME}-d + PATH_SUFFIXES lib64 lib + PATHS ${FIND_SFML_PATHS}) + + # choose the entries that fit the requested link type + if(SFML_STATIC_LIBRARIES) + if(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_RELEASE) + set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_RELEASE}) + endif() + if(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_DEBUG) + set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_DEBUG}) + endif() + else() + if(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_RELEASE) + set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_RELEASE}) + endif() + if(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_DEBUG) + set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_DEBUG}) + endif() + endif() + endif() + + if (SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG OR SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE) + # library found + set(SFML_${FIND_SFML_COMPONENT_UPPER}_FOUND TRUE) + + # if both are found, set SFML_XXX_LIBRARY to contain both + if (SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG AND SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE) + set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY debug ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG} + optimized ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE}) + endif() + + # if only one debug/release variant is found, set the other to be equal to the found one + if (SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG AND NOT SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE) + # debug and not release + set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG}) + set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG}) + endif() + if (SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE AND NOT SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG) + # release and not debug + set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE}) + set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE}) + endif() + else() + # library not found + set(SFML_FOUND FALSE) + set(SFML_${FIND_SFML_COMPONENT_UPPER}_FOUND FALSE) + set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY "") + set(FIND_SFML_MISSING "${FIND_SFML_MISSING} SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY") + endif() + + # mark as advanced + MARK_AS_ADVANCED(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY + SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE + SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG + SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_RELEASE + SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_STATIC_DEBUG + SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_RELEASE + SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DYNAMIC_DEBUG) + + # add to the global list of libraries + set(SFML_LIBRARIES ${SFML_LIBRARIES} "${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY}") +endforeach() + +# in case of static linking, we must also define the list of all the dependencies of SFML libraries +if(SFML_STATIC_LIBRARIES) + + # detect the OS + if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") + set(FIND_SFML_OS_WINDOWS 1) + elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") + set(FIND_SFML_OS_LINUX 1) + elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + set(FIND_SFML_OS_FREEBSD 1) + elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(FIND_SFML_OS_MACOSX 1) + endif() + + # start with an empty list + set(SFML_DEPENDENCIES) + set(FIND_SFML_DEPENDENCIES_NOTFOUND) + + # macro that searches for a 3rd-party library + macro(find_sfml_dependency output friendlyname) + # No lookup in environment variables (PATH on Windows), as they may contain wrong library versions + find_library(${output} NAMES ${ARGN} PATHS ${FIND_SFML_PATHS} PATH_SUFFIXES lib NO_SYSTEM_ENVIRONMENT_PATH) + if(${${output}} STREQUAL "${output}-NOTFOUND") + unset(output) + set(FIND_SFML_DEPENDENCIES_NOTFOUND "${FIND_SFML_DEPENDENCIES_NOTFOUND} ${friendlyname}") + endif() + endmacro() + + # sfml-system + list(FIND SFML_FIND_COMPONENTS "system" FIND_SFML_SYSTEM_COMPONENT) + if(NOT ${FIND_SFML_SYSTEM_COMPONENT} EQUAL -1) + + # update the list -- these are only system libraries, no need to find them + if(FIND_SFML_OS_LINUX OR FIND_SFML_OS_FREEBSD OR FIND_SFML_OS_MACOSX) + set(SFML_SYSTEM_DEPENDENCIES "pthread") + endif() + if(FIND_SFML_OS_LINUX) + set(SFML_SYSTEM_DEPENDENCIES ${SFML_SYSTEM_DEPENDENCIES} "rt") + endif() + if(FIND_SFML_OS_WINDOWS) + set(SFML_SYSTEM_DEPENDENCIES "winmm") + endif() + set(SFML_DEPENDENCIES ${SFML_SYSTEM_DEPENDENCIES} ${SFML_DEPENDENCIES}) + endif() + + # sfml-network + list(FIND SFML_FIND_COMPONENTS "network" FIND_SFML_NETWORK_COMPONENT) + if(NOT ${FIND_SFML_NETWORK_COMPONENT} EQUAL -1) + + # update the list -- these are only system libraries, no need to find them + if(FIND_SFML_OS_WINDOWS) + set(SFML_NETWORK_DEPENDENCIES "ws2_32") + endif() + set(SFML_DEPENDENCIES ${SFML_NETWORK_DEPENDENCIES} ${SFML_DEPENDENCIES}) + endif() + + # sfml-window + list(FIND SFML_FIND_COMPONENTS "window" FIND_SFML_WINDOW_COMPONENT) + if(NOT ${FIND_SFML_WINDOW_COMPONENT} EQUAL -1) + + # find libraries + if(FIND_SFML_OS_LINUX OR FIND_SFML_OS_FREEBSD) + find_sfml_dependency(X11_LIBRARY "X11" X11) + find_sfml_dependency(LIBXCB_LIBRARIES "XCB" xcb libxcb) + find_sfml_dependency(X11_XCB_LIBRARY "X11-xcb" X11-xcb libX11-xcb) + find_sfml_dependency(XCB_RANDR_LIBRARY "xcb-randr" xcb-randr libxcb-randr) + find_sfml_dependency(XCB_IMAGE_LIBRARY "xcb-image" xcb-image libxcb-image) + endif() + + if(FIND_SFML_OS_LINUX) + find_sfml_dependency(UDEV_LIBRARIES "UDev" udev libudev) + endif() + + # update the list + if(FIND_SFML_OS_WINDOWS) + set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "opengl32" "winmm" "gdi32") + elseif(FIND_SFML_OS_LINUX) + set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "GL" ${X11_LIBRARY} ${LIBXCB_LIBRARIES} ${X11_XCB_LIBRARY} ${XCB_RANDR_LIBRARY} ${XCB_IMAGE_LIBRARY} ${UDEV_LIBRARIES}) + elseif(FIND_SFML_OS_FREEBSD) + set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "GL" ${X11_LIBRARY} ${LIBXCB_LIBRARIES} ${X11_XCB_LIBRARY} ${XCB_RANDR_LIBRARY} ${XCB_IMAGE_LIBRARY} "usbhid") + elseif(FIND_SFML_OS_MACOSX) + set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "-framework OpenGL -framework Foundation -framework AppKit -framework IOKit -framework Carbon") + endif() + set(SFML_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} ${SFML_DEPENDENCIES}) + endif() + + # sfml-graphics + list(FIND SFML_FIND_COMPONENTS "graphics" FIND_SFML_GRAPHICS_COMPONENT) + if(NOT ${FIND_SFML_GRAPHICS_COMPONENT} EQUAL -1) + + # find libraries + find_sfml_dependency(FREETYPE_LIBRARY "FreeType" freetype) + find_sfml_dependency(JPEG_LIBRARY "libjpeg" jpeg) + + # update the list + set(SFML_GRAPHICS_DEPENDENCIES ${FREETYPE_LIBRARY} ${JPEG_LIBRARY}) + set(SFML_DEPENDENCIES ${SFML_GRAPHICS_DEPENDENCIES} ${SFML_DEPENDENCIES}) + endif() + + # sfml-audio + list(FIND SFML_FIND_COMPONENTS "audio" FIND_SFML_AUDIO_COMPONENT) + if(NOT ${FIND_SFML_AUDIO_COMPONENT} EQUAL -1) + + # find libraries + find_sfml_dependency(OPENAL_LIBRARY "OpenAL" openal openal32) + find_sfml_dependency(OGG_LIBRARY "Ogg" ogg) + find_sfml_dependency(VORBIS_LIBRARY "Vorbis" vorbis) + find_sfml_dependency(VORBISFILE_LIBRARY "VorbisFile" vorbisfile) + find_sfml_dependency(VORBISENC_LIBRARY "VorbisEnc" vorbisenc) + find_sfml_dependency(FLAC_LIBRARY "FLAC" FLAC) + + # update the list + set(SFML_AUDIO_DEPENDENCIES ${OPENAL_LIBRARY} ${FLAC_LIBRARY} ${VORBISENC_LIBRARY} ${VORBISFILE_LIBRARY} ${VORBIS_LIBRARY} ${OGG_LIBRARY}) + set(SFML_DEPENDENCIES ${SFML_DEPENDENCIES} ${SFML_AUDIO_DEPENDENCIES}) + endif() + +endif() + +# handle errors +if(NOT SFML_VERSION_OK) + # SFML version not ok + set(FIND_SFML_ERROR "SFML found but version too low (requested: ${SFML_FIND_VERSION}, found: ${SFML_VERSION_MAJOR}.${SFML_VERSION_MINOR}.${SFML_VERSION_PATCH})") + set(SFML_FOUND FALSE) +elseif(SFML_STATIC_LIBRARIES AND FIND_SFML_DEPENDENCIES_NOTFOUND) + set(FIND_SFML_ERROR "SFML found but some of its dependencies are missing (${FIND_SFML_DEPENDENCIES_NOTFOUND})") + set(SFML_FOUND FALSE) +elseif(NOT SFML_FOUND) + # include directory or library not found + set(FIND_SFML_ERROR "Could NOT find SFML (missing: ${FIND_SFML_MISSING})") +endif() +if (NOT SFML_FOUND) + if(SFML_FIND_REQUIRED) + # fatal error + message(FATAL_ERROR ${FIND_SFML_ERROR}) + elseif(NOT SFML_FIND_QUIETLY) + # error but continue + message("${FIND_SFML_ERROR}") + endif() +endif() + +# handle success +if(SFML_FOUND AND NOT SFML_FIND_QUIETLY) + message(STATUS "Found SFML ${SFML_VERSION_MAJOR}.${SFML_VERSION_MINOR}.${SFML_VERSION_PATCH} in ${SFML_INCLUDE_DIR}") +endif() diff --git a/Flappy.sln b/Flappy.sln deleted file mode 100644 index ad53b71..0000000 --- a/Flappy.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Flappy", "Flappy\Flappy.vcxproj", "{9035B83C-F117-480E-9DEB-435AA0EBEA3F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Debug|Win32.ActiveCfg = Debug|Win32 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Debug|Win32.Build.0 = Debug|Win32 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Debug|x64.ActiveCfg = Debug|x64 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Debug|x64.Build.0 = Debug|x64 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Debug|x86.ActiveCfg = Debug|Win32 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Debug|x86.Build.0 = Debug|Win32 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Release|Win32.ActiveCfg = Release|Win32 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Release|Win32.Build.0 = Release|Win32 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Release|x64.ActiveCfg = Release|x64 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Release|x64.Build.0 = Release|x64 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Release|x86.ActiveCfg = Release|Win32 - {9035B83C-F117-480E-9DEB-435AA0EBEA3F}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Flappy/Flappy.vcxproj b/Flappy/Flappy.vcxproj deleted file mode 100644 index 59861ec..0000000 --- a/Flappy/Flappy.vcxproj +++ /dev/null @@ -1,166 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {9035B83C-F117-480E-9DEB-435AA0EBEA3F} - Win32Proj - Flappy - 8.1 - - - - Application - true - v140 - Unicode - - - Application - false - v140 - true - Unicode - - - Application - true - v140 - Unicode - - - Application - false - v140 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - - - true - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\include;$(IncludePath) - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\lib;$(LibraryPath) - - - false - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx32\include;$(IncludePath) - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx32\lib;$(LibraryPath) - - - false - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\include;$(IncludePath) - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\lib;$(LibraryPath) - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - - - Level3 - Disabled - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\include;%(AdditionalIncludeDirectories) - - - Console - true - sfml-graphics-d.lib;sfml-audio-d.lib;sfml-network-d.lib;sfml-system-d.lib;sfml-window-d.lib;%(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx32\include;%(AdditionalIncludeDirectories) - - - Console - true - true - true - sfml-graphics.lib;sfml-audio.lib;sfml-network.lib;sfml-system.lib;sfml-window.lib;%(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\include;%(AdditionalIncludeDirectories) - - - Console - true - true - true - sfml-graphics.lib;sfml-audio.lib;sfml-network.lib;sfml-system.lib;sfml-window.lib;%(AdditionalDependencies) - - - - - - - - - \ No newline at end of file diff --git a/Flappy/Flappy.vcxproj.filters b/Flappy/Flappy.vcxproj.filters deleted file mode 100644 index 0d8d9e4..0000000 --- a/Flappy/Flappy.vcxproj.filters +++ /dev/null @@ -1,22 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Source Files - - - \ No newline at end of file diff --git a/Flappy/~AutoRecover.Flappy.vcxproj b/Flappy/~AutoRecover.Flappy.vcxproj deleted file mode 100644 index 0095ae0..0000000 --- a/Flappy/~AutoRecover.Flappy.vcxproj +++ /dev/null @@ -1,166 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {9035B83C-F117-480E-9DEB-435AA0EBEA3F} - Win32Proj - Flappy - 8.1 - - - - Application - true - v140 - Unicode - - - Application - false - v140 - true - Unicode - - - Application - true - v140 - Unicode - - - Application - false - v140 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - - - true - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\include;$(IncludePath) - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\lib;$(LibraryPath) - - - false - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx86\include;$(IncludePath) - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx86\lib;$(LibraryPath) - - - false - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\include;$(IncludePath) - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\lib;$(LibraryPath) - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - - - Level3 - Disabled - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\include;%(AdditionalIncludeDirectories) - - - Console - true - sfml-graphics-d.lib;sfml-audio-d.lib;sfml-network-d.lib;sfml-system-d.lib;sfml-window-d.lib;%(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx86\include;%(AdditionalIncludeDirectories) - - - Console - true - true - true - sfml-graphics.lib;sfml-audio.lib;sfml-network.lib;sfml-system.lib;sfml-window.lib;%(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - Z:\Cpp_Libs\SFML-Visual_Studio2015RCx64\include;%(AdditionalIncludeDirectories) - - - Console - true - true - true - sfml-graphics.lib;sfml-audio.lib;sfml-network.lib;sfml-system.lib;sfml-window.lib;%(AdditionalDependencies) - - - - - - - - - \ No newline at end of file diff --git a/Flappy/main.cpp b/main.cpp similarity index 87% rename from Flappy/main.cpp rename to main.cpp index f696c28..8187233 100644 --- a/Flappy/main.cpp +++ b/main.cpp @@ -2,25 +2,29 @@ #include #include #include -#include +#include + +#ifdef linux +#elif defined _WIN32 +#elif defined TARGET_OS_MAC +#endif const float g = 7.8; const int WINDOW_X = 600; const int WINDOW_Y = 800; float elap_time() { - static __int64 start = 0; - static __int64 frequency = 0; + static std::chrono::time_point start; + static bool started = false; - if (start == 0) { - QueryPerformanceCounter((LARGE_INTEGER*)&start); - QueryPerformanceFrequency((LARGE_INTEGER*)&frequency); - return 0.0f; + if (!started) { + start = std::chrono::system_clock::now(); + started = true; } - __int64 counter = 0; - QueryPerformanceCounter((LARGE_INTEGER*)&counter); - return (float)((counter - start) / double(frequency)); + std::chrono::time_point now = std::chrono::system_clock::now(); + std::chrono::duration elapsed_time = now - start; + return static_cast(elapsed_time.count()); } int main() @@ -35,7 +39,7 @@ int main() // Init flappy sf::Texture flappy_texture[4] = { sf::Texture(), sf::Texture(), sf::Texture(), sf::Texture() }; for (int i = 0; i < 4; i++) { - flappy_texture[i].loadFromFile("Assets\\bird.png", sf::IntRect(0, i*12, 34, 24)); + flappy_texture[i].loadFromFile("..\\Assets\\bird.png", sf::IntRect(0, i*12, 34, 24)); } sf::RectangleShape flappy(sf::Vector2f(34, 24)); @@ -43,13 +47,13 @@ int main() flappy.setPosition(WINDOW_X / 2, WINDOW_Y / 2); // Init world - sf::Texture background = sf::Texture(); background.loadFromFile("Assets\\sky.png"); + sf::Texture background = sf::Texture(); background.loadFromFile("..\\Assets\\sky.png"); sf::Sprite background_sprite = sf::Sprite(background); background_sprite.setPosition(0, 0); background_sprite.setScale(8, 8); - sf::Texture land = sf::Texture(); land.loadFromFile("Assets\\land.png"); + sf::Texture land = sf::Texture(); land.loadFromFile("..\\Assets\\land.png"); sf::Sprite land_sprite = sf::Sprite(land); land_sprite.setPosition(0, WINDOW_Y - WINDOW_Y / 10); land_sprite.setScale(3, 2); - sf::Texture pipe_up, pipe_down = sf::Texture(); pipe_down.loadFromFile("Assets\\pipe-down.png"); pipe_up.loadFromFile("Assets\\pipe-up.png"); + sf::Texture pipe_up, pipe_down = sf::Texture(); pipe_down.loadFromFile("..\\Assets\\pipe-down.png"); pipe_up.loadFromFile("..\\Assets\\pipe-up.png"); sf::Sprite pipe_up_sprite = sf::Sprite(pipe_up); sf::Sprite pipe_down_sprite = sf::Sprite(pipe_down); - sf::Texture pipe_shaft = sf::Texture(); pipe_shaft.loadFromFile("Assets\\pipe.png"); + sf::Texture pipe_shaft = sf::Texture(); pipe_shaft.loadFromFile("..\\Assets\\pipe.png"); sf::Sprite pipe_shaft_sprite = sf::Sprite(pipe_shaft); double momentum = 0;