From 3665c7ff662ca67d08f5424943af3efda79cf127 Mon Sep 17 00:00:00 2001 From: Linus Probert Date: Sat, 5 May 2018 21:29:08 +0200 Subject: [PATCH] Rotate daggers instead of using spritesheet Don't know if this is bad for performance but it does make things simpler. --- assets/Extras/Dagger.png | Bin 419 -> 0 bytes src/projectile.c | 15 ++++++--------- src/skill.c | 16 ++++++++++++---- 3 files changed, 18 insertions(+), 13 deletions(-) delete mode 100644 assets/Extras/Dagger.png diff --git a/assets/Extras/Dagger.png b/assets/Extras/Dagger.png deleted file mode 100644 index b1f8c66a44108f60460723eea4d8b664bad88a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmV;U0bKrxP)InB1ld^(l2nLVxk{lA7bK8k_?HwuYy1zPE1UeWCAfmastGO zOU@t=Bo9HFY-HWKw&V!eKdF0td;eemX$LTBl$B&G@z68;hK`053&uMkP!eHZjgKga zkdi29e=7homUw=13*~m(TRXq}Y=H7fPTede5iaKxuBTIDy7pIU{$FP2RnwaK1xj2L5@gCIc8pPrOywf6MiD{v5v#&78 zN^7c=M3@!|(?X$d0+Ou6v{2SCU1x4I(95-v9(=Q}oFV+|F(gfGvk$sI1mj-j^>T&K zwpTCP9$rb%0GuLJlM93p>Cw^<(n1Y8{pV~pJT?ZIPP3~%gn58(0Qxf4o;o)O#_>*G zH3~z#yLFg0{}Lh012muDHgCp3eLw6Y!FUk!rrwA4XQlu8+db+p>I->zNro(%Y?c53 N002ovPDHLkV1lHJw1)ry diff --git a/src/projectile.c b/src/projectile.c index 1e7a91c..a566f96 100644 --- a/src/projectile.c +++ b/src/projectile.c @@ -31,25 +31,22 @@ static void onDaggerRender(Sprite *s) { - if (!timer_started(s->renderTimer)) - timer_start(s->renderTimer); - - if (timer_get_ticks(s->renderTimer) > 60) { - timer_start(s->renderTimer); - s->clip.x += 16; - s->clip.x = s->clip.x % 64; - } + if (s->angle >= 0) + s->angle += 30; + else + s->angle -= 30; } Projectile * projectile_dagger_create(void) { Projectile *p = projectile_create(); - sprite_set_texture(p->sprite, texturecache_add("Extras/Dagger.png"), 0); + sprite_set_texture(p->sprite, texturecache_add("Items/ShortWep.png"), 0); p->sprite->onRender = onDaggerRender; p->sprite->animate = false; p->sprite->clip = CLIP16(0, 0); p->sprite->dim = (Dimension) { 32, 32 }; + p->sprite->rotationPoint = (SDL_Point) { 16, 16 }; return p; } diff --git a/src/skill.c b/src/skill.c index df9724c..bfea534 100644 --- a/src/skill.c +++ b/src/skill.c @@ -143,14 +143,22 @@ skill_throw_dagger(Skill *skill, SkillData *data) data->player->daggers--; Projectile *p = projectile_dagger_create(); - if (vector2d_equals(VECTOR2D_UP, data->direction)) + if (vector2d_equals(VECTOR2D_UP, data->direction)) { p->velocity = (Vector2d) { 0, -DAGGER_VELOCITY }; - else if (vector2d_equals(VECTOR2D_DOWN, data->direction)) + p->sprite->flip = SDL_FLIP_VERTICAL; + } + else if (vector2d_equals(VECTOR2D_DOWN, data->direction)) { p->velocity = (Vector2d) { 0, DAGGER_VELOCITY }; - else if (vector2d_equals(VECTOR2D_RIGHT, data->direction)) + p->sprite->flip = SDL_FLIP_HORIZONTAL; + } + else if (vector2d_equals(VECTOR2D_RIGHT, data->direction)) { p->velocity = (Vector2d) { DAGGER_VELOCITY, 0 }; - else + p->sprite->flip = SDL_FLIP_HORIZONTAL; + } + else { p->velocity = (Vector2d) { -DAGGER_VELOCITY, 0 }; + p->sprite->angle = -270; + } set_player_clip_for_direction(data->player, &data->direction);