context normal state and camera input
This commit is contained in:
parent
7e065745d2
commit
737ba58860
3 changed files with 38 additions and 42 deletions
68
kubo_input.c
68
kubo_input.c
|
|
@ -17,6 +17,7 @@
|
|||
*/
|
||||
|
||||
#include "kubo_input.h"
|
||||
#include "states/kubo_states.h"
|
||||
|
||||
extern bool kubo_mouse_snap;
|
||||
|
||||
|
|
@ -24,6 +25,7 @@ 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);
|
||||
static void handle_camera_input(int key_code, Camera2D *camera);
|
||||
|
||||
void kubo_input_handle(struct kubo_context *context, Camera2D *camera) {
|
||||
char_input(context);
|
||||
|
|
@ -38,6 +40,10 @@ void kubo_input_handle(struct kubo_context *context, Camera2D *camera) {
|
|||
static void key_input(struct kubo_context *context, Camera2D *camera) {
|
||||
int key_code = GetKeyPressed();
|
||||
|
||||
if (context->state.id == KUBO_CONTEXT_NORMAL) {
|
||||
handle_camera_input(key_code, camera);
|
||||
}
|
||||
|
||||
switch (key_code) {
|
||||
case KEY_Q:
|
||||
case KEY_ESCAPE:
|
||||
|
|
@ -52,38 +58,6 @@ static void key_input(struct kubo_context *context, Camera2D *camera) {
|
|||
kubo_context_set_state(context, KUBO_CONTEXT_WALL_SELECT);
|
||||
break;
|
||||
|
||||
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});
|
||||
}
|
||||
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});
|
||||
}
|
||||
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});
|
||||
}
|
||||
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});
|
||||
}
|
||||
break;
|
||||
|
||||
case KEY_T:
|
||||
kubo_mouse_snap = !kubo_mouse_snap;
|
||||
break;
|
||||
|
|
@ -133,3 +107,33 @@ static void handle_cmd_input(struct kubo_context *context) {
|
|||
|
||||
return;
|
||||
}
|
||||
|
||||
static void handle_camera_input(int key_code, Camera2D *camera) {
|
||||
switch (key_code) {
|
||||
case KEY_RIGHT:
|
||||
case KEY_L:
|
||||
kubo_camera_shift(camera,
|
||||
(Vector2){.x = -KUBO_INPUT_CAMERA_SHIFT, .y = 0});
|
||||
break;
|
||||
|
||||
case KEY_UP:
|
||||
case KEY_K:
|
||||
kubo_camera_shift(camera,
|
||||
(Vector2){.x = 0, .y = KUBO_INPUT_CAMERA_SHIFT});
|
||||
break;
|
||||
|
||||
case KEY_LEFT:
|
||||
case KEY_H:
|
||||
kubo_camera_shift(camera,
|
||||
(Vector2){.x = KUBO_INPUT_CAMERA_SHIFT, .y = 0});
|
||||
break;
|
||||
|
||||
case KEY_DOWN:
|
||||
case KEY_J:
|
||||
kubo_camera_shift(camera,
|
||||
(Vector2){.x = 0, .y = -KUBO_INPUT_CAMERA_SHIFT});
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue