#include "components.h" #include "input.h" #include "player.h" #include "standard.h" #include "world.h" void init_player(Player* player, World* world) { CSprite* sprite; CPosition* pos; Entity e; e = new_entity(world); player->entity = e; add_components(world, e, ctype_sprite | ctype_position); sprite = &world->sprites[e]; pos = &world->positions[e]; pos->x = 32; pos->y = 70; sprite->id = asset_id_char; sprite->rect = make_rect(0, 16, 16, 16); } void update_player(Player* player, World* world) { int dx, dy; Entity e; CPosition* pos; e = player->entity; pos = &world->positions[e]; dx = dy = 0; if (button_pressed(btn_dpad_left)) { dx -= 1 << fbits; } if (button_pressed(btn_dpad_right)) { dx += 1 << fbits; } if (button_pressed(btn_dpad_up)) { dy -= 1 << fbits; } if (button_pressed(btn_dpad_down)) { dy += 1 << fbits; } if (dx != 0 || dy != 0) { vec_nrmise(&dx, &dy); pos->x += dx; pos->y += dy; } }