This repository has been archived on 2025-02-04. You can view files and clone it, but cannot push or open issues or pull requests.
helpless/player.c
2024-08-30 12:02:39 +01:00

38 lines
No EOL
1.1 KiB
C

void player_setup(Entity* en) {
en->arch = ARCH_player;
en->renderable = true;
en->is_animate = true;
en->max_health = 100;
en->health = en->max_health;
en->armour = ARMOUR_starter;
}
void player_process_input(Entity* player, Entity* player_weapon, float delta_time) {
Vector2 move_axis = v2(0.0, 0.0);
if (is_key_down('W')) {
move_axis.y += 1.0;
}
if (is_key_down('A')) {
move_axis.x -= 1.0;
}
if (is_key_down('S')) {
move_axis.y -= 1.0;
}
if (is_key_down('D')) {
move_axis.x += 1.0;
}
move_axis = v2_normalize(move_axis);
player->pos = v2_add(player->pos, v2_mulf(move_axis, 75 * delta_time));
player_weapon->weapon_owner_pos = player->pos;
player_weapon->weapon_dir = v2_normalize(get_mouse_pos_in_ndc());
// weapon swapping
if (is_key_just_pressed(MOUSE_BUTTON_RIGHT)) {
swap(player->primary_weapon, player->secondary_weapon, Entity_Archetype);
entity_destroy(player_weapon);
player_weapon = entity_create();
weapon_setup(player_weapon, player->primary_weapon);
player_weapon->pos = player->pos;
}
}