summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2023-05-27 18:17:05 -0400
committerrealtradam <[email protected]>2023-05-27 18:17:05 -0400
commitadbd4bf423647fbab111434b08058c3c130df020 (patch)
tree0e2da07207814d444d63783b2e18f2186d45bcbc
parent6a6a9ff8f989896fa7af7132d50b116a07e6b44c (diff)
downloadrodeo_sample_game-adbd4bf423647fbab111434b08058c3c130df020.tar.gz
rodeo_sample_game-adbd4bf423647fbab111434b08058c3c130df020.zip
centered target sprite
-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
-rw-r--r--src/sprite.c4
5 files changed, 54 insertions, 2 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 55c6d38..e45b652 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
@@ -243,3 +252,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);
+
+
diff --git a/src/sprite.c b/src/sprite.c
index c1c88f6..41ed692 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -7,8 +7,8 @@ draw_sprite(sprite_t *sprite, float x, float y, float scale)
{
rodeo_texture_2d_draw(
&(rodeo_rectangle_t){
- .x = x - ((float)sprite->config.width * scale / 2),
- .y = y - ((float)sprite->config.height * scale / 2),
+ .x = x,
+ .y = y,
.width = (float)sprite->config.width * scale,
.height = (float)sprite->config.height * scale
},