replace context offset with Camera2D

This commit is contained in:
Luka Jankovic 2025-08-13 23:48:14 +02:00
parent 2026f8ac8d
commit af7d6dee00
11 changed files with 132 additions and 70 deletions

View file

@ -18,22 +18,22 @@
#include "kubo_input.h"
static void key_input(struct kubo_context *context);
static void key_input(struct kubo_context *context, Camera2D *camera);
static void char_input(struct kubo_context *context);
static void handle_cmd_input(struct kubo_context *context);
void kubo_input_handle(struct kubo_context *context) {
void kubo_input_handle(struct kubo_context *context, Camera2D *camera) {
char_input(context);
if (context->state.id == KUBO_CONTEXT_COMMAND) {
handle_cmd_input(context);
}
key_input(context);
key_input(context, camera);
}
static void key_input(struct kubo_context *context) {
static void key_input(struct kubo_context *context, Camera2D *camera) {
int key_code = GetKeyPressed();
switch (key_code) {
@ -52,21 +52,37 @@ static void key_input(struct kubo_context *context) {
case KEY_RIGHT:
case KEY_L:
if (context->state.id == KUBO_CONTEXT_NORMAL) {
kubo_camera_shift(camera,
(Vector2){.x = KUBO_INPUT_CAMERA_SHIFT, .y = 0});
}
kubo_context_input_right(context);
break;
case KEY_UP:
case KEY_K:
if (context->state.id == KUBO_CONTEXT_NORMAL) {
kubo_camera_shift(camera,
(Vector2){.x = 0, .y = KUBO_INPUT_CAMERA_SHIFT});
}
kubo_context_input_up(context);
break;
case KEY_LEFT:
case KEY_H:
if (context->state.id == KUBO_CONTEXT_NORMAL) {
kubo_camera_shift(camera,
(Vector2){.x = -KUBO_INPUT_CAMERA_SHIFT, .y = 0});
}
kubo_context_input_left(context);
break;
case KEY_DOWN:
case KEY_J:
if (context->state.id == KUBO_CONTEXT_NORMAL) {
kubo_camera_shift(camera,
(Vector2){.x = 0, .y = -KUBO_INPUT_CAMERA_SHIFT});
}
kubo_context_input_down(context);
break;
@ -75,7 +91,7 @@ static void key_input(struct kubo_context *context) {
break;
case KEY_SPACE:
kubo_context_reset_offset(context);
kubo_camera_reset(camera);
break;
default: