summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--assets/aim.pngbin0 -> 5052 bytes
-rw-r--r--assets/aim.xcfbin0 -> 12838 bytes
-rw-r--r--src/player.c35
-rw-r--r--src/player.h17
4 files changed, 52 insertions, 0 deletions
diff --git a/assets/aim.png b/assets/aim.png
new file mode 100644
index 0000000..90a92e8
--- /dev/null
+++ b/assets/aim.png
Binary files differ
diff --git a/assets/aim.xcf b/assets/aim.xcf
new file mode 100644
index 0000000..b852969
--- /dev/null
+++ b/assets/aim.xcf
Binary files differ
diff --git a/src/player.c b/src/player.c
index fe413f6..599f1ff 100644
--- a/src/player.c
+++ b/src/player.c
@@ -11,6 +11,7 @@ struct player_t
{
sprite_t sprite;
rodeo_texture_2d_t texture;
+ rodeo_texture_2d_t aim_texture;
int32_t hp;
float damage_timer; //ms
world_id collision_id;
@@ -18,11 +19,14 @@ struct player_t
}
player;
+typedef struct player_t player_t;
+
// 0-19 jumping
// 61 standing
// 20-60 mid iar
static rodeo_collision_2d_world_t player_collision_world;
+static aim_position_t aim_position;
static float orc_size[] = {13.0f * 2.0f, 19.0f * 2.0f};
@@ -30,6 +34,7 @@ void
init_player(void)
{
player.texture = rodeo_texture_2d_create_from_path(cstr_lit("assets/mainblob-128.png"));
+ player.aim_texture = rodeo_texture_2d_create_from_path(cstr_lit("assets/aim.png"));
player.sprite.config.texture = &player.texture;
player_collision_world = rodeo_collision_2d_world_create();
player.collision_id = rodeo_collision_2d_world_item_create(
@@ -51,6 +56,8 @@ init_player(void)
}
};
player.hp = 100;
+ aim_position.x = 101;
+ aim_position.y = 100;
}
void
@@ -64,6 +71,7 @@ void
draw_player(void)
{
cvec_collision_2d_world_item_value *player_position = rodeo_collision_2d_world_item_get_by_id(player.collision_id);
+ draw_aim(player_position->x, player_position->y, 0.25f);
draw_sprite(&player.sprite, player_position->x, player_position->y, 0.25f);
/*
cvec_collision_2d_world_item_value *player = rodeo_collision_2d_world_item_get_by_id(player_collision_id);
@@ -132,6 +140,7 @@ move_player(void)
player_position->dx = 0;
player_position->y += player_position->dy * ((60.0f - (float)player.sprite.iter) / 60.0f);
player_position->dy = 0;
+ update_aim_position();
}
void
@@ -238,3 +247,29 @@ get_player_position(void)
{
return rodeo_collision_2d_world_item_get_by_id(player.collision_id);
}
+
+void
+update_aim_position(void)
+{
+
+}
+
+void
+draw_aim(float player_x, float player_y, float scale)
+{
+ rodeo_texture_2d_draw(
+ &(rodeo_rectangle_t){
+ //.x = player_x - (((128.0f * scale) * 1.3f) - (128.0f * scale) ),
+ .x = player_x - (((128.0f * scale) * 0.6f) / 2),
+ .y = player_y + ((((44.0f) * scale) * 0.6f) / 2) + (80.0f * scale),
+ .width = (128 * scale) * 1.6f,
+ .height = (44 * scale) * 1.6f,
+ },
+ &(rodeo_rectangle_t){
+ .width = 128,
+ .height = 44,
+ },
+ &(rodeo_color_RGBAFloat_t){ .array = {0.9f,0.9f,0.9f,1.0} },
+ &player.aim_texture
+ );
+}
diff --git a/src/player.h b/src/player.h
index fa010eb..45c81b1 100644
--- a/src/player.h
+++ b/src/player.h
@@ -13,6 +13,15 @@ enum
}
move_state_t;
+typedef
+struct
+{
+ float x;
+ float y;
+}
+aim_position_t;
+
+
void
init_player(void);
@@ -39,3 +48,11 @@ detect_player_wall_collisions(void);
cvec_collision_2d_world_item_value *
get_player_position(void);
+
+void
+update_aim_position(void);
+
+void
+draw_aim(float player_x, float player_y, float scale);
+
+