summaryrefslogtreecommitdiffhomepage
path: root/games
diff options
context:
space:
mode:
authorRay <[email protected]>2017-10-22 11:12:10 +0200
committerRay <[email protected]>2017-10-22 11:12:10 +0200
commit3f9d76f227f166d339b1c4b5dd507e2491e9b967 (patch)
treef055a8ae252ec7b08028d8cf5d65eaacc8e88206 /games
parent33da9bc8f609d904da48161d98e5df527a86ff60 (diff)
downloadraylib-3f9d76f227f166d339b1c4b5dd507e2491e9b967.tar.gz
raylib-3f9d76f227f166d339b1c4b5dd507e2491e9b967.zip
Updated Makefile to support Android
Diffstat (limited to 'games')
-rw-r--r--games/Makefile314
-rw-r--r--games/arkanoid.c29
-rw-r--r--games/asteroids.c31
-rw-r--r--games/asteroids_survival.c28
-rw-r--r--games/floppy.c29
-rw-r--r--games/gold_fever.c30
-rw-r--r--games/gorilas.c28
-rw-r--r--games/missile_commander.c28
-rw-r--r--games/pang.c28
-rw-r--r--games/snake.c28
-rw-r--r--games/space_invaders.c29
-rw-r--r--games/tetris.c28
12 files changed, 337 insertions, 293 deletions
diff --git a/games/Makefile b/games/Makefile
index 60f38bff..00f82d19 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -1,6 +1,6 @@
#**************************************************************************************************
#
-# raylib makefile for desktop platforms, Raspberry Pi and HTML5 (emscripten)
+# raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5
#
# Copyright (c) 2013-2017 Ramon Santamaria (@raysan5)
#
@@ -23,29 +23,30 @@
.PHONY: all clean
-# define raylib platform to compile for
-# possible platforms: PLATFORM_DESKTOP PLATFORM_RPI PLATFORM_WEB
+# Define required raylib variables
# WARNING: To compile to HTML5, code must be redesigned to use emscripten.h and emscripten_set_main_loop()
PLATFORM ?= PLATFORM_DESKTOP
+RAYLIB_PATH ?= ..
+PROJECT_NAME ?= advance_game
-# define NO to use OpenAL Soft as static library (shared by default)
-SHARED_OPENAL ?= NO
+# Library type used for raylib and OpenAL Soft: STATIC (.a) or SHARED (.so/.dll)
+# NOTE: Libraries should be provided in the selected form
+RAYLIB_LIBTYPE ?= STATIC
+OPENAL_LIBTYPE ?= STATIC
+# On PLATFORM_WEB force OpenAL Soft shared library
ifeq ($(PLATFORM),PLATFORM_WEB)
- SHARED_OPENAL = NO
+ OPENAL_LIBTYPE = SHARED
endif
-# define raylib directory for include and library
-RAYLIB_PATH ?= C:\raylib\raylib
-
-# determine PLATFORM_OS in case PLATFORM_DESKTOP selected
+# Determine PLATFORM_OS in case PLATFORM_DESKTOP selected
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
# No uname.exe on MinGW!, but OS=Windows_NT on Windows! ifeq ($(UNAME),Msys) -> Windows
ifeq ($(OS),Windows_NT)
PLATFORM_OS=WINDOWS
LIBPATH=win32
else
- UNAMEOS:=$(shell uname)
+ UNAMEOS=$(shell uname)
ifeq ($(UNAMEOS),Linux)
PLATFORM_OS=LINUX
LIBPATH=linux
@@ -58,164 +59,172 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
endif
endif
-# define compiler: gcc for C program, define as g++ for C++
-ifeq ($(PLATFORM),PLATFORM_WEB)
- # define emscripten compiler
- CC = emcc
-else
-ifeq ($(PLATFORM_OS),OSX)
- # define llvm compiler for mac
- CC = clang
-else
- # define default gcc compiler
- CC = gcc
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ # RPI cross-compiler
+ RPI_CROSS_COMPILE ?= NO
endif
+
+ifeq ($(PLATFORM),PLATFORM_WEB)
+ # Emscripten required variables
+ EMSDK_PATH = C:/emsdk
+ EMSCRIPTEN_VERSION = 1.37.21
+ CLANG_VERSION=e1.37.21_64bit
+ PYTHON_VERSION=2.7.5.3_64bit
+ NODE_VERSION=4.1.1_64bit
+ export PATH=$(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH)
+ EMSCRIPTEN=$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION)
endif
-# define compiler flags:
-# -O2 defines optimization level
-# -Og enable debugging
-# -s strip unnecessary data from build
-# -Wall turns on most, but not all, compiler warnings
-# -std=c99 defines C language mode (standard C from 1999 revision)
-# -std=gnu99 defines C language mode (GNU C from 1999 revision)
-# -fgnu89-inline declaring inline functions support (GCC optimized)
-# -Wno-missing-braces ignore invalid warning (GCC bug 53119)
-# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
+# Define raylib release directory for compiled library
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
ifeq ($(PLATFORM_OS),WINDOWS)
- CFLAGS = -O2 -s -Wall -std=c99
+ RAYLIB_RELEASE = $(RAYLIB_PATH)/release/libs/win32/mingw32
endif
ifeq ($(PLATFORM_OS),LINUX)
- CFLAGS = -O2 -s -Wall -std=c99 -D_DEFAULT_SOURCE
+ RAYLIB_RELEASE = $(RAYLIB_PATH)/release/libs/linux
endif
ifeq ($(PLATFORM_OS),OSX)
- CFLAGS = -O2 -s -Wall -std=c99
+ RAYLIB_RELEASE = $(RAYLIB_PATH)/release/libs/osx
endif
endif
ifeq ($(PLATFORM),PLATFORM_WEB)
- CFLAGS = -O1 -Wall -std=c99 -D_DEFAULT_SOURCE -s USE_GLFW=3 -s ASSERTIONS=1 -s --profiling
- # -O2 # if used, also set --memory-init-file 0
- # --memory-init-file 0 # to avoid an external memory initialization code file (.mem)
- # -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing
- # -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB)
- # --preload-file file.res # embbed file.res resource into .data file
+ RAYLIB_RELEASE = $(RAYLIB_PATH)/release/libs/html5
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
- CFLAGS = -O2 -s -Wall -std=gnu99 -fgnu89-inline
+ RAYLIB_RELEASE = $(RAYLIB_PATH)/release/libs/rpi
endif
-#CFLAGSEXTRA = -Wextra -Wmissing-prototypes -Wstrict-prototypes
-# define raylib release directory for compiled library
+# Define default C compiler: gcc
+CC = gcc
+
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
- ifeq ($(PLATFORM_OS),WINDOWS)
- RAYLIB_RELEASE = $(RAYLIB_PATH)/release/win32/mingw32
- endif
- ifeq ($(PLATFORM_OS),LINUX)
- RAYLIB_RELEASE = $(RAYLIB_PATH)/release/linux
- endif
ifeq ($(PLATFORM_OS),OSX)
- RAYLIB_RELEASE = $(RAYLIB_PATH)/release/osx
+ # OSX default compiler
+ CC = clang
endif
endif
-ifeq ($(PLATFORM),PLATFORM_WEB)
- RAYLIB_RELEASE = $(RAYLIB_PATH)/release/html5
-endif
ifeq ($(PLATFORM),PLATFORM_RPI)
- RAYLIB_RELEASE = $(RAYLIB_PATH)/release/rpi
+ ifeq ($(RPI_CROSS_COMPILE),YES)
+ # RPI cross-compiler
+ CC = armv6j-hardfloat-linux-gnueabi-gcc
+ endif
+endif
+ifeq ($(PLATFORM),PLATFORM_WEB)
+ # HTML5 emscripten compiler
+ CC = emcc
endif
-# define any directories containing required header files
-INCLUDES = -I. -I$(RAYLIB_RELEASE) -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external
+# Define default make program: Mingw32-make
+MAKE = mingw32-make
-ifeq ($(PLATFORM),PLATFORM_RPI)
- INCLUDES += -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads
-endif
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
- ifeq ($(PLATFORM_OS),WINDOWS)
- # external libraries headers
- # GLFW3
- INCLUDES += -I$(RAYLIB_PATH)/src/external/glfw3/include
- # OpenAL Soft
- INCLUDES += -I$(RAYLIB_PATH)/src/external/openal_soft/include
- endif
ifeq ($(PLATFORM_OS),LINUX)
- # you may optionally create this directory and install raylib
- # and related headers there. Edit ../src/Makefile appropriately.
- INCLUDES += -I/usr/local/include/raylib
+ MAKE = make
endif
- ifeq ($(PLATFORM_OS),OSX)
- # additional directories for MacOS
+endif
+
+# Define compiler flags:
+# -O1 defines optimization level
+# -Og enable debugging
+# -s strip unnecessary data from build
+# -Wall turns on most, but not all, compiler warnings
+# -std=c99 defines C language mode (standard C from 1999 revision)
+# -std=gnu99 defines C language mode (GNU C from 1999 revision)
+# -fgnu89-inline declaring inline functions support (GCC optimized)
+# -Wno-missing-braces ignore invalid warning (GCC bug 53119)
+# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
+CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -fgnu89-inline -Wno-missing-braces
+
+# Additional flags for compiler (if desired)
+#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ ifeq ($(PLATFORM_OS),LINUX)
+ CFLAGS += -no-pie -D_DEFAULT_SOURCE
endif
endif
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ CFLAGS += -std=gnu99
+endif
+ifeq ($(PLATFORM),PLATFORM_WEB)
+ # -O2 # if used, also set --memory-init-file 0
+ # --memory-init-file 0 # to avoid an external memory initialization code file (.mem)
+ # -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing
+ # -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB)
+ # -s USE_PTHREADS=1 # multithreading support
+ CFLAGS += -s USE_GLFW=3 -s ASSERTIONS=1 --profiling -s TOTAL_MEMORY=16777216 --preload-file resources
+endif
-# define library paths containing required libs
-LFLAGS = -L. -L$(RAYLIB_RELEASE) -L$(RAYLIB_PATH)/src
+# Define include paths for required headers
+# NOTE: Several external required libraries (stb and others)
+INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/release/include -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external
+# Define additional directories containing required header files
ifeq ($(PLATFORM),PLATFORM_RPI)
- LFLAGS += -L/opt/vc/lib
+ # RPI requried libraries
+ INCLUDE_PATHS += -I/opt/vc/include
+ INCLUDE_PATHS += -I/opt/vc/include/interface/vmcs_host/linux
+ INCLUDE_PATHS += -I/opt/vc/include/interface/vcos/pthreads
endif
-ifeq ($(PLATFORM),PLATFORM_DESKTOP)
- # add standard directories for GNU/Linux
- ifeq ($(PLATFORM_OS),WINDOWS)
- # external libraries to link with
- # GLFW3
- LFLAGS += -L$(RAYLIB_PATH)/src/external/glfw3/lib/$(LIBPATH)
- # OpenAL Soft
- LFLAGS += -L$(RAYLIB_PATH)/src/external/openal_soft/lib/$(LIBPATH)
- endif
+
+# Define library paths containing required libs
+LDFLAGS = -L. -L$(RAYLIB_RELEASE) -L$(RAYLIB_PATH)/src
+
+ifeq ($(PLATFORM),PLATFORM_RPI)
+ LDFLAGS += -L/opt/vc/lib
endif
-# define any libraries to link into executable
+# Define any libraries required on linking
# if you want to link libraries (libname.so or libname.a), use the -lname
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
- ifeq ($(PLATFORM_OS),LINUX)
- # libraries for Debian GNU/Linux desktop compiling
- # requires the following packages:
- # libglfw3-dev libopenal-dev libegl1-mesa-dev
- LIBS = -lraylib -lglfw3 -lGL -lopenal -lm -lpthread -ldl
- # on XWindow requires also below libraries
- LIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
- else
- ifeq ($(PLATFORM_OS),OSX)
- # libraries for OSX 10.9 desktop compiling
- # requires the following packages:
- # libglfw3-dev libopenal-dev libegl1-mesa-dev
- LIBS = -lraylib -lglfw -framework OpenGL -framework OpenAL -framework Cocoa
- else
- # libraries for Windows desktop compiling
+ ifeq ($(PLATFORM_OS),WINDOWS)
+ # Libraries for Windows desktop compiling
# NOTE: GLFW3 and OpenAL Soft libraries should be installed
- LIBS = -lraylib -lglfw3 -lopengl32 -lgdi32
- # if static OpenAL Soft required, define the corresponding libs
- ifeq ($(SHARED_OPENAL),NO)
- LIBS += -lopenal32 -lwinmm
- CFLAGS += -Wl,-allow-multiple-definition
+ LDLIBS = -lraylib -lglfw3 -lopengl32 -lgdi32
+
+ # Define required flags and libs for OpenAL Soft STATIC/SHARED usage
+ # NOTE: ALLIBS flag only required for raylib Win32 SHARED library building
+ ifeq ($(OPENAL_LIBTYPE),STATIC)
+ LDLIBS += -lopenal32 -lwinmm
+ CFLAGS += -DAL_LIBTYPE_STATIC -Wl,-allow-multiple-definition
else
- LIBS += -lopenal32dll
+ LDLIBS += -lopenal32dll
endif
endif
+ ifeq ($(PLATFORM_OS),LINUX)
+ # Libraries for Debian GNU/Linux desktop compiling
+ # NOTE: Required packages: libglfw3-dev libopenal-dev libegl1-mesa-dev
+ LDLIBS = -lraylib -lglfw3 -lGL -lopenal -lm -lpthread -ldl
+
+ # On XWindow requires also below libraries
+ LDLIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
+ endif
+ ifeq ($(PLATFORM_OS),OSX)
+ # Libraries for OSX 10.9 desktop compiling
+ # NOTE: Required packages: libglfw3-dev libopenal-dev libegl1-mesa-dev
+ LDLIBS = -lraylib -lglfw -framework OpenGL -framework OpenAL -framework Cocoa
endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
- # libraries for Raspberry Pi compiling
- # NOTE: OpenAL Soft library should be installed (libopenal1 package)
- LIBS = -lraylib -lGLESv2 -lEGL -lpthread -lrt -lm -lbcm_host -lopenal
+ # Libraries for Raspberry Pi compiling
+ # NOTE: Required packages: libopenal1
+ LDLIBS = -lraylib -lGLESv2 -lEGL -lpthread -lrt -lm -lbcm_host -lopenal
endif
ifeq ($(PLATFORM),PLATFORM_WEB)
- # NOTE: Set the correct path to libraylib.bc
- LIBS = $(RAYLIB_RELEASE)/libraylib.bc
+ # Libraries for web (HTML5) compiling
+ LDLIBS = $(RAYLIB_RELEASE)/libraylib.bc
endif
-# define additional parameters and flags for windows
+# Define additional parameters and flags for windows
ifeq ($(PLATFORM_OS),WINDOWS)
- # resources file contains windows exe icon
+ # resources file contains raylib icon for windows .exe
# -Wl,--subsystem,windows hides the console window
- WINFLAGS = $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
+ CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
endif
+# Define output extension to generate a .html file using provided shell
ifeq ($(PLATFORM),PLATFORM_WEB)
EXT = .html
- WEB_SHELL = --shell-file $(RAYLIB_PATH)\templates\web_shell\shell.html
+ CFLAGS += --shell-file $(RAYLIB_PATH)\templates\web_shell\shell.html
endif
# define all object files required
@@ -231,58 +240,16 @@ SAMPLES = \
snake \
space_invaders \
tetris \
- fix_dylib \
-
# typing 'make' will invoke the default target entry
-default: samples
+all: $(SAMPLES)
-# compile all game samples
-samples: $(SAMPLES)
-
-# compile game sample - arkanoid
-arkanoid: arkanoid.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
-
-# compile game sample - steroids
-asteroids: asteroids.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
-
-# compile game sample - asteroids_survival
-asteroids_survival: asteroids_survival.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
-
-# compile game sample - floppy
-floppy: floppy.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
-
-# compile game sample - gold_fever
-gold_fever: gold_fever.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
-
-# compile game sample - gorilas
-gorilas: gorilas.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
-
-# compile game sample - missile_commander
-missile_commander: missile_commander.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
-
-# compile game sample - pang
-pang: pang.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
-
-# compile game sample - snake
-snake: snake.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
-
-# compile game sample - space_invaders
-space_invaders: space_invaders.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
-
-# compile game sample - tetris
-tetris: tetris.c
- $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) $(WEB_SHELL)
+%: %.c
+ifeq ($(PLATFORM),PLATFORM_ANDROID)
+ mingw32-make -f Makefile.Android PROJECT_NAME=$@ PROJECT_SOURCE_FILES=$<
+else
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
+endif
# fix dylib install path name for each executable (MAC)
fix_dylib:
@@ -290,18 +257,18 @@ ifeq ($(PLATFORM_OS),OSX)
find . -type f -perm +ugo+x -print0 | xargs -t -0 -R 1 -I file install_name_tool -change libglfw.3.0.dylib ../external/glfw3/lib/osx/libglfw.3.0.dylib file
endif
-# clean everything
+# Clean everything
clean:
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
- ifeq ($(PLATFORM_OS),OSX)
- find . -type f -perm +ugo+x -delete
- rm -f *.o
- else
+ ifeq ($(PLATFORM_OS),WINDOWS)
+ del *.o *.exe /s
+ endif
ifeq ($(PLATFORM_OS),LINUX)
find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -f
- else
- del *.o *.exe /s
endif
+ ifeq ($(PLATFORM_OS),OSX)
+ find . -type f -perm +ugo+x -delete
+ rm -f *.o
endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
@@ -312,8 +279,3 @@ ifeq ($(PLATFORM),PLATFORM_WEB)
del *.o *.html *.js
endif
@echo Cleaning done
-
-# instead of defining every module one by one, we can define a pattern
-# this pattern below will automatically compile every module defined on $(OBJS)
-#%.exe : %.c
-# $(CC) -o $@ $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM)
diff --git a/games/arkanoid.c b/games/arkanoid.c
index 6231fb8b..1da80a1e 100644
--- a/games/arkanoid.c
+++ b/games/arkanoid.c
@@ -18,6 +18,10 @@
#include <time.h>
#include <math.h>
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -59,7 +63,6 @@ typedef struct Brick {
static int screenWidth = 800;
static int screenHeight = 450;
-static int framesCounter;
static bool gameOver;
static bool pause;
@@ -80,11 +83,19 @@ static void UpdateDrawFrame(void); // Update and Draw (one frame)
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
// Initialization
- //--------------------------------------------------------------------------------------
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: arkanoid");
+#endif
InitGame();
@@ -98,14 +109,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
- //----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
+ // Update and Draw
//----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -116,8 +122,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//------------------------------------------------------------------------------------
diff --git a/games/asteroids.c b/games/asteroids.c
index 11063889..dc8a9e07 100644
--- a/games/asteroids.c
+++ b/games/asteroids.c
@@ -15,6 +15,10 @@
#include <math.h>
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -68,7 +72,6 @@ typedef struct Meteor {
static int screenWidth = 800;
static int screenHeight = 450;
-static int framesCounter;
static bool gameOver;
static bool pause;
static bool victory;
@@ -95,16 +98,22 @@ static void DrawGame(void); // Draw game (one frame)
static void UnloadGame(void); // Unload game
static void UpdateDrawFrame(void); // Update and Draw (one frame)
-static void DrawSpaceship(Vector2 position, float rotation, Color color);
-
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
// Initialization
- //--------------------------------------------------------------------------------------
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: asteroids");
+#endif
InitGame();
@@ -118,14 +127,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
- //----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
+ // Update and Draw
//----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -136,8 +140,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//------------------------------------------------------------------------------------
diff --git a/games/asteroids_survival.c b/games/asteroids_survival.c
index aa21112d..12759606 100644
--- a/games/asteroids_survival.c
+++ b/games/asteroids_survival.c
@@ -15,6 +15,10 @@
#include <math.h>
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -80,11 +84,19 @@ static void UpdateDrawFrame(void); // Update and Draw (one frame)
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
// Initialization
- //--------------------------------------------------------------------------------------
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: asteroids survival");
+#endif
InitGame();
@@ -98,14 +110,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
- //----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
+ // Update and Draw
//----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -116,8 +123,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//------------------------------------------------------------------------------------
diff --git a/games/floppy.c b/games/floppy.c
index f48ea235..d7c4f129 100644
--- a/games/floppy.c
+++ b/games/floppy.c
@@ -13,6 +13,10 @@
#include "raylib.h"
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -45,7 +49,6 @@ typedef struct Tubes {
static int screenWidth = 800;
static int screenHeight = 450;
-static int framesCounter;
static bool gameOver;
static bool pause;
static int score;
@@ -69,11 +72,19 @@ static void UpdateDrawFrame(void); // Update and Draw (one frame)
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
// Initialization
- //--------------------------------------------------------------------------------------
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: floppy");
+#endif
InitGame();
@@ -87,14 +98,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
- //----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
+ // Update and Draw
//----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -105,8 +111,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//------------------------------------------------------------------------------------
// Module Functions Definitions (local)
diff --git a/games/gold_fever.c b/games/gold_fever.c
index 5a435027..1d8b6b7c 100644
--- a/games/gold_fever.c
+++ b/games/gold_fever.c
@@ -13,6 +13,10 @@
#include "raylib.h"
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -54,7 +58,6 @@ typedef struct Home {
static int screenWidth = 800;
static int screenHeight = 450;
-static int framesCounter;
static bool gameOver;
static bool pause;
static int score;
@@ -78,12 +81,19 @@ static void UpdateDrawFrame(void); // Update and Draw (one frame)
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
// Initialization
- //--------------------------------------------------------------------------------------
-
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: gold fever");
+#endif
InitGame();
@@ -97,14 +107,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
- //----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
+ // Update and Draw
//----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -115,8 +120,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//------------------------------------------------------------------------------------
diff --git a/games/gorilas.c b/games/gorilas.c
index 86fd3f5b..75decd96 100644
--- a/games/gorilas.c
+++ b/games/gorilas.c
@@ -18,6 +18,10 @@
#include <time.h>
#include <math.h>
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -116,11 +120,19 @@ static bool UpdateBall(int playerTurn);
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
// Initialization
- //--------------------------------------------------------------------------------------
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: gorilas");
+#endif
InitGame();
@@ -134,14 +146,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
- //----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
+ // Update and Draw
//----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -152,8 +159,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//------------------------------------------------------------------------------------
diff --git a/games/missile_commander.c b/games/missile_commander.c
index 6317c41a..245cefd1 100644
--- a/games/missile_commander.c
+++ b/games/missile_commander.c
@@ -18,6 +18,10 @@
#include <time.h>
#include <math.h>
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -115,11 +119,19 @@ static void UpdateIncomingFire();
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
// Initialization
- //--------------------------------------------------------------------------------------
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: missile commander");
+#endif
InitGame();
@@ -133,14 +145,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
- //----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
+ // Update and Draw
//----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -151,8 +158,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//--------------------------------------------------------------------------------------
diff --git a/games/pang.c b/games/pang.c
index fe1c3005..731234ae 100644
--- a/games/pang.c
+++ b/games/pang.c
@@ -15,6 +15,10 @@
#include <math.h>
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -106,9 +110,19 @@ static void UpdateDrawFrame(void); // Update and Draw (one frame)
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
+ // Initialization
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: pang");
+#endif
InitGame();
@@ -122,14 +136,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
+ // Update and Draw
//----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
- //----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -140,8 +149,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//------------------------------------------------------------------------------------
diff --git a/games/snake.c b/games/snake.c
index ac2f6132..c971ce15 100644
--- a/games/snake.c
+++ b/games/snake.c
@@ -13,6 +13,10 @@
#include "raylib.h"
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -69,11 +73,19 @@ static void UpdateDrawFrame(void); // Update and Draw (one frame)
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
// Initialization
- //--------------------------------------------------------------------------------------
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: snake");
+#endif
InitGame();
@@ -87,14 +99,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
- //----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
+ // Update and Draw
//----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -105,8 +112,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//------------------------------------------------------------------------------------
diff --git a/games/space_invaders.c b/games/space_invaders.c
index c2dd0c61..b80de050 100644
--- a/games/space_invaders.c
+++ b/games/space_invaders.c
@@ -13,6 +13,10 @@
#include "raylib.h"
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -57,7 +61,6 @@ typedef struct Shoot{
static int screenWidth = 800;
static int screenHeight = 450;
-static int framesCounter;
static bool gameOver;
static bool pause;
static int score;
@@ -87,11 +90,19 @@ static void UpdateDrawFrame(void); // Update and Draw (one frame)
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
// Initialization
- //--------------------------------------------------------------------------------------
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: space invaders");
+#endif
InitGame();
@@ -105,14 +116,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
- //----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
+ // Update and Draw
//----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -123,8 +129,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//------------------------------------------------------------------------------------
diff --git a/games/tetris.c b/games/tetris.c
index 84ba9196..e02d7f18 100644
--- a/games/tetris.c
+++ b/games/tetris.c
@@ -18,6 +18,10 @@
#include <time.h>
#include <math.h>
+#if defined(PLATFORM_ANDROID)
+ #include "android_native_app_glue.h"
+#endif
+
#if defined(PLATFORM_WEB)
#include <emscripten/emscripten.h>
#endif
@@ -105,11 +109,19 @@ static void DeleteCompleteLines();
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
-int main()
+#if defined(PLATFORM_ANDROID)
+void android_main(struct android_app *app)
+#else
+int main(void)
+#endif
{
// Initialization
- //--------------------------------------------------------------------------------------
+ //---------------------------------------------------------
+#if defined(PLATFORM_ANDROID)
+ InitWindow(screenWidth, screenHeight, app);
+#else
InitWindow(screenWidth, screenHeight, "sample game: tetris");
+#endif
InitGame();
@@ -123,14 +135,9 @@ int main()
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
- // Update
- //----------------------------------------------------------------------------------
- UpdateGame();
- //----------------------------------------------------------------------------------
-
- // Draw
+ // Update and Draw
//----------------------------------------------------------------------------------
- DrawGame();
+ UpdateDrawFrame();
//----------------------------------------------------------------------------------
}
#endif
@@ -141,8 +148,9 @@ int main()
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
-
+#if !defined(PLATFORM_ANDROID)
return 0;
+#endif
}
//--------------------------------------------------------------------------------------