diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-02-24 14:08:50 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-02-24 14:08:50 +0100 |
| commit | c924493670af7285683295d7ab38991e018b65cf (patch) | |
| tree | ccf41600ed966efdf6cac86aea97a07f76365cdc /src/event.c | |
| parent | 8db6918f320b792698f385bb2ea58ddd94cba6fe (diff) | |
| download | fractol-c924493670af7285683295d7ab38991e018b65cf.tar.gz fractol-c924493670af7285683295d7ab38991e018b65cf.tar.bz2 fractol-c924493670af7285683295d7ab38991e018b65cf.zip | |
Added zoom and movement
Diffstat (limited to 'src/event.c')
| -rw-r--r-- | src/event.c | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/src/event.c b/src/event.c index 6aac07b..3f878f8 100644 --- a/src/event.c +++ b/src/event.c @@ -6,12 +6,15 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/24 09:52:35 by cacharle #+# #+# */ -/* Updated: 2020/02/24 10:10:29 by cacharle ### ########.fr */ +/* Updated: 2020/02/24 14:08:20 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include "fractol.h" +#define MOVE_SPEED 0.2 +#define ZOOM_SPEED 1.1 + int event_quit(t_state *state) { state->running = false; @@ -20,7 +23,43 @@ int event_quit(t_state *state) int event_keydown(int key, t_state *state) { + printf("%d\n", key); if (key == MLXK_ESC) state->running = false; + else if (key == MLXK_UP) + state->center.i -= state->plane.i * MOVE_SPEED; + else if (key == MLXK_DOWN) + state->center.i += state->plane.i * MOVE_SPEED; + else if (key == MLXK_LEFT) + state->center.r -= state->plane.r * MOVE_SPEED; + else if (key == MLXK_RIGHT) + state->center.r += state->plane.r * MOVE_SPEED; + else + return (0); + render_update_window_complex(state); + return (0); +} + +int event_mouse(int button, int x, int y, t_state *state) +{ + (void)x; + (void)y; + + /* printf("%d\n", button); */ + /* printf("%d\n", x); */ + /* printf("%d\n", y); */ + if (button == MLX_MOUSE_SCROLL_UP) + { + state->plane.r /= ZOOM_SPEED; + state->plane.i /= ZOOM_SPEED; + } + else if (button == MLX_MOUSE_SCROLL_DOWN) + { + state->plane.r *= ZOOM_SPEED; + state->plane.i *= ZOOM_SPEED; + } + else + return (0); + render_update_window_complex(state); return (0); } |
