aboutsummaryrefslogtreecommitdiff
path: root/src/event.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-02-24 14:08:50 +0100
committerCharles <sircharlesaze@gmail.com>2020-02-24 14:08:50 +0100
commitc924493670af7285683295d7ab38991e018b65cf (patch)
treeccf41600ed966efdf6cac86aea97a07f76365cdc /src/event.c
parent8db6918f320b792698f385bb2ea58ddd94cba6fe (diff)
downloadfractol-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.c41
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);
}