From 93513072903fcd4f3c8dfade4bf9bcd110b9b804 Mon Sep 17 00:00:00 2001 From: ineslelin Date: Wed, 24 Jan 2024 14:22:25 +0100 Subject: [PATCH] sprites walking directions done --- assets/chicken_knight_spritesheet.png | Bin 1818 -> 3194 bytes assets/chicken_spritesheet.png | Bin 1433 -> 2778 bytes include/AnimationHandler.h | 8 +++-- include/KeyboardController.h | 14 ++++---- src/KeyboardController.cpp | 46 +++++++++++++------------- src/SpriteComponent.cpp | 8 +++-- 6 files changed, 41 insertions(+), 35 deletions(-) diff --git a/assets/chicken_knight_spritesheet.png b/assets/chicken_knight_spritesheet.png index 9e6939d3985a3a8dbb10cd323a7b6702c72dd8c0..e9bd50597a227a7c45043590180cb58e9d4758df 100644 GIT binary patch literal 3194 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 delta 1816 zcmV+z2j}?u7@7`{7k@wq1^@s6s%dfF00001b5ch_0Itp)=>Px*x=BPqRCt{2nr~BR_#G2YBO-!4d&Fw|J>wo3n<&wKJcH|2s&E50d z_xJmKpXa&DeIKZzijv{$?361VgIU;2_4fNKQUrz53hpIlI-fk+p$2g9+Y_d)RV;ja z_N2JIUe+BsQZjc*9etgha<7m8V9Ta9CPQH!k54Xm5v&lPq$$uVB-pa4jpo%G7@w)3 zb=4YLo0q2rRDVwRIy+^BYs;oKQ`|)t;N;N`xq0;l9#769%{)h%dCut52(7Eu(7bxX zf)v3@0SphDi``wa6!PO(S`UEeTn@na)N{3s!xl$$E@yn|Igw`p_J3pjlu!haX6AW? zrORkrAu{?j!uY=rikc2Z1=#)LDVcbfNHmsqTx@V;9e=Yr`Em(RRFJ`;KG`NLMR0qw z&LtD60?f_6K=O~W^1V+iSHBzr7!J}m&?7t7ZbWEo)NPkc#F(27Ax#7=FG4v4FuVwg zo~DAyE2wF75lcu$FKr0Efgahm%#$;D0Gr)`&F-M4z81ml;mP&Oh89G_1+WQAjkU8o zfK>|2PAHXY2N?wzv9?sgeuj62No;rk~s=K6rxJ zn4Q_l7)%9-^dBcU)R)%oVt1E3GBR8e$FsY?MlYbMzVlNFq*zeCf_l*jm!~vicqBbp& zmi0)HC`u7LTemM!{{Q9b005%PO(Zk{z!zWcP9qRny*Ll=B|J8gM%uPQWMpKRgGW#6 zuFP6q<(O}vM|OI1C$Glc-a#D@*nJ3qmJ2@+4?N6DzHNmF!0iX~LZlTS9(YJy%X;F` zaer(L%^A0y8;CA9bGJ_8ba@H4Y|9G7d3Y}*qBy-?us7fv=#g*S^Dz>_kovg<5Is#K zr5Tcmm^#1nL1^{jKK3=z^mN(?>^^lwmO_4RKL}=tkUat>{M5CqPaO~&0FcJ+sL2a1 zFH*=4E%W`9dvHyCE!4ZP*&RsJ(>Uw`bAQAANFhH5FaA^TzN{y}`JXSOLed$5O7fW^ zT)%cEZwzT`Ks@je!R=Ltk2H2CRoS&~5D85nxaNnV=yK0rBp$o}SE{N&xPN6E zQpiuuI|o!1@*)uhNR1YQ&=VkQ1ZF0ZM}*#=4)gihTX_Y@x(zBtkS0y|#-;Xd-L)X`%E5XJ(rA*1F0vru-{*D@(OYZpe%%tS^)D2Qj7?Og3R?qr3bUg=i}81Fc(j%p9)G5 zp{PI~o!cn`tlIZ$RzJOSW>KsFU|fXaUWoMWmS^K4Oa-8+g;gKVKUCGWNJ{&mP&VJ#C5`Oxxq8UW)dvanma# z7R(jaVqI6)5-a!@<^BLG`4{E>fQs1T3aqxLE6u-X_6NKY_IM@t2b7Dyws4bqeAK=H zqxSUvVlG@ke#47kx$Nmm^M5az{Q(uX$E~oZ|Cjc-(ft97!X7ULM(pWDV~^*ur=jp$ z*-U$S`FCHb?(Cwn$F1HUV1+%Na)j>c@@n~uwa2sF;g^=U)}B_pIz4w5()R~A*KP!0 zZn&S>!Se;x&&O|sS3#yd?p(VO-$0M77em?i2S91|xWX^G?&amxqJPvF%Dz9qtUaEK zH*is#%(kKhl3(ZR6Z=EN4uX+2h6R4vY)*EbSh z6;)JGg%TF0000!#$ diff --git a/assets/chicken_spritesheet.png b/assets/chicken_spritesheet.png index ba003eb5716620ee79854126a2bbaf1045f3ff8b..0e69278b3ab98a54f31fdf879bb1b8ac2a38001c 100644 GIT binary patch literal 2778 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 delta 1428 zcmV;F1#9}+6`2c=7k@wq1^@s6s%dfF00001b5ch_0Itp)=>Px)IY~r8RCt{2noWok zXB@_VCQcG#lG&vRnxPhTLH43W5G{D>rC2@KgGdiOC@d`%ym+u5l%*`C-BSw|4;~60 z_M#NpJxF1pQVNAG2vU_+3mZQI$;zb0&BSbyVKY6%8MFC#=YJy~D>BbzcQWt1|NsAa z=6&a#c^~lM!xJ*o)5b>UFbD*^T$GufHpt}$or@=oT!?!|jvAS%sSQ^@Gc`4kJT|#$ zeDBCnLwa2SK)v%1@i%r5ncTzfnHg98^aCpgMHxt3cSAsysXojCY;5s>y6`K1pM2lw zcL=y5;OWCh1b>4;bnO}1qwGkF2ZkbmTHat!tS1-5#Etnpzwx3BwY= z5do62i(q6k0D(}nqm5q3(a=|iLc*{G*lZVEN~Q=#Hh*_5+=P@=&`Tvyi*DmPf+>LV z!#CXpsF#VSAhR%MxFtb230CSl!Ni!eBohhZsc|>4ZP6}3FA=1qLSSpkQw$*iWRtZfN*+(fV2g(Z~!SDqn2M1Uf&IxT0}3ENMHWekpPW)g@(Rr%^gkz=y^+;3m_?x zu!=L$J}K!BZm&C*cJ5t&zK}yoDkQc~IvN5d`P7@MK0-01L_&CtnPVUnwH9W9*ftvF z$A5&=6V&ocU5B7>4lp5_g=_gG0D&`Txs+DJ$Ij#2me~d>wkru_u|dl-v*jmL@%f`o~g~4r4p69e_3~d zodCkbtg#5z%a91>_yeq$6feb_OJHaY13MIM-LQsDrLL3QcK~?tk|xT*Ho45goFOX; z4Sf{=b7lt!hMPCgTCG8&{1~n6WvHJwLnq`1LeX^-v=;#!&&rOnevU!C65El#R)1?) zf4vIeIMM8-69&MJkACd9Ms%)UxFsLl31B<0vscd=6!S2iCKA>hpBn_SSI-*U|Jmw4 zb^P+Cj`Jij7qd-ZHrB}C_j9eWhg?+@_(0pR-se18D={(xpX-+v$A-X9<&KvRoE4xVBgqu4sE&1h)c6$>t-` z4TRg{;NBk)PmS|R_yYiZe}L}~!0NOYe1CxN4|qlW0p^A$K=kk#M=P>d#vhQqbi#;i zk6Fjn$5PPe$lv?@5rw&e?U74)#Y->{(tK*F)?V5KrerQ^mMWF$LA!t5x};gNkp%`_f`@H zUA!H^t=r;W{Q;x>sObTA1grC>jA|{;j+5WN^tJf#@e<;H(g$T!1IHoj0000EWmrjO iO-%qQ00008000000002eQw@^<0000down = down; this->left = left; this->right = right; - this->fire = fire; - this->fireVelocity = fireVelocity; + this->fire = fire; + this->fireVelocity = fireVelocity; } void KeyboardController::init() @@ -28,42 +28,42 @@ void KeyboardController::update() if (keystates[this->up]) { transform->velocity.y = -1; - sprite->play(WALK); + sprite->play(WALK_R); } if (keystates[this->left]) { transform->velocity.x = -1; - sprite->play(WALK); + sprite->play(WALK_L); } if (keystates[this->down]) { transform->velocity.y = 1; - sprite->play(WALK); + sprite->play(WALK_R); } if (keystates[this->right]) { transform->velocity.x = 1; - sprite->play(WALK); + sprite->play(WALK_R); } - if (keystates[this->fire]) { + if (keystates[this->fire]) { - Uint32 currentTicks = SDL_GetTicks(); + Uint32 currentTicks = SDL_GetTicks(); - if (currentTicks - lastFireTime >= fireCooldown) { + if (currentTicks - lastFireTime >= fireCooldown) { - player = &entity->getComponent(); + player = &entity->getComponent(); - //checks player source via the firing velocity - //TODO: adding actual projectile textures - if(fireVelocity.x > 0) { - Game::assets->createProjectile(Vector2D(player->position.x, player->position.y), fireVelocity, - false,1, 180, 1, "assets/egg.png"); - } - else { - Game::assets->createProjectile(Vector2D(player->position.x, player->position.y), fireVelocity, - true,1, 180, 1, "assets/egg.png"); - } + //checks player source via the firing velocity + //TODO: adding actual projectile textures + if (fireVelocity.x > 0) { + Game::assets->createProjectile(Vector2D(player->position.x, player->position.y), fireVelocity, + false, 1, 180, 1, "assets/egg.png"); + } + else { + Game::assets->createProjectile(Vector2D(player->position.x, player->position.y), fireVelocity, + true, 1, 180, 1, "assets/egg.png"); + } - lastFireTime = currentTicks; - } + lastFireTime = currentTicks; + } - } + } } \ No newline at end of file diff --git a/src/SpriteComponent.cpp b/src/SpriteComponent.cpp index 1afe232..2339a2f 100644 --- a/src/SpriteComponent.cpp +++ b/src/SpriteComponent.cpp @@ -13,10 +13,12 @@ SpriteComponent::SpriteComponent(const char* path, bool isAnimated) animated = isAnimated; Animation* idle = new Animation((int)AnimationType::IDLE, 2, 200); - Animation* walk = new Animation((int)AnimationType::WALK, 2, 200); + Animation* walkR = new Animation((int)AnimationType::WALK_R, 2, 200); + Animation* walkL = new Animation((int)AnimationType::WALK_L, 2, 200); animations.emplace(IDLE, idle); - animations.emplace(WALK, walk); + animations.emplace(WALK_R, walkR); + animations.emplace(WALK_L, walkL); play(IDLE); @@ -61,7 +63,7 @@ void SpriteComponent::draw() TextureManager::get().draw(this->texture, this->srcRect, this->destRect); } -void SpriteComponent::play(AnimationType type) +void SpriteComponent::play(AnimationType type) { animationIndex = animations.at(type)->index; frames = animations.at(type)->frames;