diff options
Diffstat (limited to 'demos/isomap')
-rw-r--r-- | demos/isomap/CMakeLists.txt | 2 | ||||
-rw-r--r-- | demos/isomap/isomap.c | 87 |
2 files changed, 48 insertions, 41 deletions
diff --git a/demos/isomap/CMakeLists.txt b/demos/isomap/CMakeLists.txt index 2dbfd32..9467625 100644 --- a/demos/isomap/CMakeLists.txt +++ b/demos/isomap/CMakeLists.txt | |||
@@ -1,4 +1,4 @@ | |||
1 | cmake_minimum_required(VERSION 3.0) | 1 | cmake_minimum_required(VERSION 3.5) |
2 | 2 | ||
3 | project(isomap) | 3 | project(isomap) |
4 | 4 | ||
diff --git a/demos/isomap/isomap.c b/demos/isomap/isomap.c index a940535..471ef57 100644 --- a/demos/isomap/isomap.c +++ b/demos/isomap/isomap.c | |||
@@ -1,5 +1,5 @@ | |||
1 | #include <isogfx/backend.h> | 1 | #include <isogfx/backend.h> |
2 | #include <isogfx/isogfx.h> | 2 | #include <isogfx/gfx2d.h> |
3 | 3 | ||
4 | #include <gfx/app.h> | 4 | #include <gfx/app.h> |
5 | #include <math/vec2.h> | 5 | #include <math/vec2.h> |
@@ -16,73 +16,77 @@ static const int MAX_FPS = 60; | |||
16 | static const int SCREEN_WIDTH = 704; | 16 | static const int SCREEN_WIDTH = 704; |
17 | static const int SCREEN_HEIGHT = 480; | 17 | static const int SCREEN_HEIGHT = 480; |
18 | 18 | ||
19 | static const R CAMERA_SPEED = 400; | 19 | static const R CAMERA_SPEED = 800; |
20 | 20 | ||
21 | #define MEMORY_SIZE (2 * 1024 * 1024) | 21 | #define MEMORY_SIZE (8 * 1024 * 1024) |
22 | uint8_t MEMORY[MEMORY_SIZE]; | 22 | uint8_t MEMORY[MEMORY_SIZE]; |
23 | 23 | ||
24 | typedef struct GfxAppState { | 24 | typedef struct GfxAppState { |
25 | IsoBackend* backend; | 25 | Gfx2dBackend* backend; |
26 | IsoGfx* iso; | 26 | Gfx2d* gfx; |
27 | int xpick; | 27 | int xpick; |
28 | int ypick; | 28 | int ypick; |
29 | vec2 camera; | 29 | vec2 camera; |
30 | SpriteSheet stag_sheet; | 30 | SpriteSheet stag_sheet; |
31 | Sprite stag; | 31 | Sprite stag; |
32 | } GfxAppState; | 32 | } GfxAppState; |
33 | 33 | ||
34 | static bool init(GfxAppState* state, int argc, const char** argv) { | 34 | static bool init(GfxApp* app, GfxAppState* state, int argc, const char** argv) { |
35 | assert(app); | ||
35 | assert(state); | 36 | assert(state); |
36 | (void)argc; | 37 | (void)argc; |
37 | (void)argv; | 38 | (void)argv; |
38 | 39 | ||
39 | if (!((state->iso = | 40 | if (!((state->gfx = |
40 | isogfx_new(&(IsoGfxDesc){.memory = MEMORY, | 41 | gfx2d_new(&(Gfx2dDesc){.memory = MEMORY, |
41 | .memory_size = MEMORY_SIZE, | 42 | .memory_size = MEMORY_SIZE, |
42 | .screen_width = SCREEN_WIDTH, | 43 | .screen_width = SCREEN_WIDTH, |
43 | .screen_height = SCREEN_HEIGHT})))) { | 44 | .screen_height = SCREEN_HEIGHT})))) { |
44 | return false; | 45 | return false; |
45 | } | 46 | } |
46 | IsoGfx* iso = state->iso; | 47 | Gfx2d* iso = state->gfx; |
47 | 48 | ||
48 | if (!isogfx_load_world(iso, "/home/jeanne/Nextcloud/assets/maps/demo-1.tm")) { | 49 | if (!gfx2d_load_map( |
50 | iso, "/home/jeanne/Nextcloud/assets/tilemaps/scrabling1.tm")) { | ||
49 | return false; | 51 | return false; |
50 | } | 52 | } |
51 | 53 | ||
52 | if (!((state->stag_sheet = isogfx_load_sprite_sheet( | 54 | if (!((state->stag_sheet = gfx2d_load_sprite_sheet( |
53 | iso, | 55 | iso, |
54 | "/home/jeanne/Nextcloud/assets/tilesets/scrabling/critters/stag/" | 56 | "/home/jeanne/Nextcloud/assets/tilesets/scrabling/critters/stag/" |
55 | "stag.ss")))) { | 57 | "stag.ss")))) { |
56 | return false; | 58 | return false; |
57 | } | 59 | } |
58 | 60 | ||
59 | state->stag = isogfx_make_sprite(iso, state->stag_sheet); | 61 | state->stag = gfx2d_make_sprite(iso, state->stag_sheet); |
60 | isogfx_set_sprite_position(iso, state->stag, 5, 4); | 62 | gfx2d_set_sprite_position(iso, state->stag, 0, 0); |
61 | 63 | ||
62 | if (!((state->backend = iso_backend_init(iso)))) { | 64 | if (!((state->backend = gfx2d_backend_init(iso)))) { |
63 | return false; | 65 | return false; |
64 | } | 66 | } |
65 | 67 | ||
66 | return true; | 68 | return true; |
67 | } | 69 | } |
68 | 70 | ||
69 | static void shutdown(GfxAppState* state) { | 71 | static void shutdown(GfxApp* app, GfxAppState* state) { |
72 | assert(app); | ||
70 | assert(state); | 73 | assert(state); |
71 | // | ||
72 | } | 74 | } |
73 | 75 | ||
74 | static vec2 get_camera_movement(R dt) { | 76 | static vec2 get_camera_movement(GfxApp* app, R dt) { |
77 | assert(app); | ||
78 | |||
75 | vec2 offset = {0}; | 79 | vec2 offset = {0}; |
76 | if (gfx_app_is_key_pressed(KeyA)) { | 80 | if (gfx_app_is_key_pressed(app, KeyA)) { |
77 | offset.x -= 1; | 81 | offset.x -= 1; |
78 | } | 82 | } |
79 | if (gfx_app_is_key_pressed(KeyD)) { | 83 | if (gfx_app_is_key_pressed(app, KeyD)) { |
80 | offset.x += 1; | 84 | offset.x += 1; |
81 | } | 85 | } |
82 | if (gfx_app_is_key_pressed(KeyW)) { | 86 | if (gfx_app_is_key_pressed(app, KeyW)) { |
83 | offset.y -= 1; | 87 | offset.y -= 1; |
84 | } | 88 | } |
85 | if (gfx_app_is_key_pressed(KeyS)) { | 89 | if (gfx_app_is_key_pressed(app, KeyS)) { |
86 | offset.y += 1; | 90 | offset.y += 1; |
87 | } | 91 | } |
88 | if ((offset.x != 0) || (offset.y != 0)) { | 92 | if ((offset.x != 0) || (offset.y != 0)) { |
@@ -91,28 +95,31 @@ static vec2 get_camera_movement(R dt) { | |||
91 | return offset; | 95 | return offset; |
92 | } | 96 | } |
93 | 97 | ||
94 | static void update(GfxAppState* state, double t, double dt) { | 98 | static void update(GfxApp* app, GfxAppState* state, double t, double dt) { |
99 | assert(app); | ||
95 | assert(state); | 100 | assert(state); |
96 | 101 | ||
97 | state->camera = vec2_add(state->camera, get_camera_movement((R)dt)); | 102 | state->camera = vec2_add(state->camera, get_camera_movement(app, (R)dt)); |
98 | 103 | ||
99 | IsoGfx* iso = state->iso; | 104 | Gfx2d* iso = state->gfx; |
100 | isogfx_set_camera(iso, (int)state->camera.x, (int)state->camera.y); | 105 | gfx2d_set_camera(iso, (int)state->camera.x, (int)state->camera.y); |
101 | isogfx_update(iso, t); | 106 | gfx2d_update(iso, t); |
102 | } | 107 | } |
103 | 108 | ||
104 | static void render(GfxAppState* state) { | 109 | static void render(const GfxApp* app, GfxAppState* state) { |
110 | assert(app); | ||
105 | assert(state); | 111 | assert(state); |
106 | 112 | ||
107 | IsoGfx* iso = state->iso; | 113 | Gfx2d* iso = state->gfx; |
108 | isogfx_render(iso); | 114 | gfx2d_render(iso); |
109 | iso_backend_render(state->backend, iso); | 115 | gfx2d_backend_render(state->backend, iso); |
110 | } | 116 | } |
111 | 117 | ||
112 | static void resize(GfxAppState* state, int width, int height) { | 118 | static void resize(GfxApp* app, GfxAppState* state, int width, int height) { |
119 | assert(app); | ||
113 | assert(state); | 120 | assert(state); |
114 | 121 | ||
115 | iso_backend_resize_window(state->backend, state->iso, width, height); | 122 | gfx2d_backend_resize_window(state->backend, state->gfx, width, height); |
116 | } | 123 | } |
117 | 124 | ||
118 | int main(int argc, const char** argv) { | 125 | int main(int argc, const char** argv) { |