Use game object for updates/draws/state
Also fix Makefile(s)
This commit is contained in:
parent
c4d9dc8437
commit
7e954ed34b
5 changed files with 56 additions and 10 deletions
12
Makefile
12
Makefile
|
@ -10,9 +10,11 @@ LINKER_FLAGS = -lraylib
|
||||||
OBJDIR = objdir
|
OBJDIR = objdir
|
||||||
|
|
||||||
SOURCES = \
|
SOURCES = \
|
||||||
src/main.cc
|
src/main.cc \
|
||||||
|
src/game.cc
|
||||||
|
|
||||||
HEADERS =
|
HEADERS = \
|
||||||
|
src/game.h
|
||||||
|
|
||||||
OBJECTS = $(addprefix ${OBJDIR}/,$(subst .cc,.cc.o,${SOURCES}))
|
OBJECTS = $(addprefix ${OBJDIR}/,$(subst .cc,.cc.o,${SOURCES}))
|
||||||
|
|
||||||
|
@ -30,6 +32,8 @@ clean:
|
||||||
format:
|
format:
|
||||||
clang-format -i --style=google ${HEADERS} ${SOURCES}
|
clang-format -i --style=google ${HEADERS} ${SOURCES}
|
||||||
|
|
||||||
${OBJDIR}/%.cc.o: %.cc
|
.SECONDEXPANSION:
|
||||||
|
|
||||||
|
${OBJDIR}/%.cc.o: $$(subst ${OBJDIR}/,,%.cc) ${HEADERS}
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
${CXX} -c ${CXX_FLAGS} -o $@ $^
|
${CXX} -c ${CXX_FLAGS} -o $@ $<
|
||||||
|
|
10
src/game.cc
Normal file
10
src/game.cc
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#include "game.h"
|
||||||
|
|
||||||
|
// third party includes
|
||||||
|
#include <raylib.h>
|
||||||
|
|
||||||
|
Game::Game() {}
|
||||||
|
|
||||||
|
void Game::update() {}
|
||||||
|
|
||||||
|
void Game::draw() { DrawText("Testing...", 100, 100, 30, RAYWHITE); }
|
22
src/game.h
Normal file
22
src/game.h
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#ifndef JUMPARTIFACT_DOT_COM_DEMO_GAME_H_
|
||||||
|
#define JUMPARTIFACT_DOT_COM_DEMO_GAME_H_
|
||||||
|
|
||||||
|
class Game {
|
||||||
|
public:
|
||||||
|
Game();
|
||||||
|
|
||||||
|
// No copy.
|
||||||
|
Game(const Game&) = delete;
|
||||||
|
Game& operator=(const Game&) = delete;
|
||||||
|
|
||||||
|
// Allow move.
|
||||||
|
Game(Game&&) = default;
|
||||||
|
Game& operator=(Game&&) = default;
|
||||||
|
|
||||||
|
void update();
|
||||||
|
void draw();
|
||||||
|
|
||||||
|
private:
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
16
src/main.cc
16
src/main.cc
|
@ -12,6 +12,7 @@
|
||||||
#include <raylib.h>
|
#include <raylib.h>
|
||||||
|
|
||||||
// local includes
|
// local includes
|
||||||
|
#include "game.h"
|
||||||
|
|
||||||
#ifdef __EMSCRIPTEN__
|
#ifdef __EMSCRIPTEN__
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -29,26 +30,33 @@ EM_BOOL resize_event_callback(int event_type, const EmscriptenUiEvent *event,
|
||||||
|
|
||||||
// Main loop frame
|
// Main loop frame
|
||||||
void jumpartifact_demo_update(void *ud) {
|
void jumpartifact_demo_update(void *ud) {
|
||||||
|
Game *game = (Game *)ud;
|
||||||
|
|
||||||
|
game->update();
|
||||||
|
|
||||||
BeginDrawing();
|
BeginDrawing();
|
||||||
ClearBackground(BLACK);
|
ClearBackground(BLACK);
|
||||||
DrawText("Testing...", 100, 100, 30, RAYWHITE);
|
game->draw();
|
||||||
EndDrawing();
|
EndDrawing();
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
InitWindow(800, 800, "Demo");
|
InitWindow(800, 800, "Demo");
|
||||||
|
|
||||||
|
Game game{};
|
||||||
|
|
||||||
#ifdef __EMSCRIPTEN__
|
#ifdef __EMSCRIPTEN__
|
||||||
SetWindowSize(call_js_get_canvas_width(), call_js_get_canvas_height());
|
SetWindowSize(call_js_get_canvas_width(), call_js_get_canvas_height());
|
||||||
|
|
||||||
emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, false,
|
emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, &game, false,
|
||||||
resize_event_callback);
|
resize_event_callback);
|
||||||
|
|
||||||
emscripten_set_main_loop_arg(jumpartifact_demo_update, 0, 0, 1);
|
emscripten_set_main_loop_arg(jumpartifact_demo_update, &game, 0, 1);
|
||||||
#else
|
#else
|
||||||
SetTargetFPS(60);
|
SetTargetFPS(60);
|
||||||
|
|
||||||
while (!WindowShouldClose()) {
|
while (!WindowShouldClose()) {
|
||||||
jumpartifact_demo_update(0);
|
jumpartifact_demo_update(&game);
|
||||||
}
|
}
|
||||||
|
|
||||||
CloseAudioDevice();
|
CloseAudioDevice();
|
||||||
|
|
|
@ -6,10 +6,12 @@ endif
|
||||||
|
|
||||||
SOURCES = \
|
SOURCES = \
|
||||||
../src/main.cc \
|
../src/main.cc \
|
||||||
../src/ems.cc
|
../src/ems.cc \
|
||||||
|
../src/game.cc
|
||||||
|
|
||||||
HEADERS = \
|
HEADERS = \
|
||||||
../src/ems.h
|
../src/ems.h \
|
||||||
|
../src/game.h
|
||||||
|
|
||||||
CXX = source ${HOME}/git/emsdk/emsdk_env.sh && em++
|
CXX = source ${HOME}/git/emsdk/emsdk_env.sh && em++
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue