From f583c69896a77298dccca19b3573428cd3477bcd Mon Sep 17 00:00:00 2001 From: KikooDX Date: Tue, 18 Feb 2020 11:48:02 +0100 Subject: [PATCH] Animation system, created elevator animation --- assets-cg/img/elevator1.png | Bin 0 -> 143 bytes assets-cg/img/elevator10.png | Bin 0 -> 150 bytes assets-cg/img/elevator11.png | Bin 0 -> 147 bytes assets-cg/img/elevator12.png | Bin 0 -> 150 bytes assets-cg/img/elevator13.png | Bin 0 -> 148 bytes assets-cg/img/elevator14.png | Bin 0 -> 134 bytes assets-cg/img/elevator15.png | Bin 0 -> 141 bytes assets-cg/img/elevator16.png | Bin 0 -> 141 bytes assets-cg/img/elevator2.png | Bin 0 -> 145 bytes assets-cg/img/elevator3.png | Bin 0 -> 146 bytes assets-cg/img/elevator4.png | Bin 0 -> 149 bytes assets-cg/img/elevator5.png | Bin 0 -> 147 bytes assets-cg/img/elevator6.png | Bin 0 -> 152 bytes assets-cg/img/elevator7.png | Bin 0 -> 153 bytes assets-cg/img/elevator8.png | Bin 0 -> 155 bytes assets-cg/img/elevator9.png | Bin 0 -> 149 bytes include/draw.h | 1 + levels.lua | 16 ++++---- platform.g3a | Bin 58556 -> 67196 bytes src/draw.c | 69 +++++++++++++++++++++++++++++------ src/main.c | 12 ++++-- 21 files changed, 76 insertions(+), 22 deletions(-) create mode 100644 assets-cg/img/elevator1.png create mode 100644 assets-cg/img/elevator10.png create mode 100644 assets-cg/img/elevator11.png create mode 100644 assets-cg/img/elevator12.png create mode 100644 assets-cg/img/elevator13.png create mode 100644 assets-cg/img/elevator14.png create mode 100644 assets-cg/img/elevator15.png create mode 100644 assets-cg/img/elevator16.png create mode 100644 assets-cg/img/elevator2.png create mode 100644 assets-cg/img/elevator3.png create mode 100644 assets-cg/img/elevator4.png create mode 100644 assets-cg/img/elevator5.png create mode 100644 assets-cg/img/elevator6.png create mode 100644 assets-cg/img/elevator7.png create mode 100644 assets-cg/img/elevator8.png create mode 100644 assets-cg/img/elevator9.png diff --git a/assets-cg/img/elevator1.png b/assets-cg/img/elevator1.png new file mode 100644 index 0000000000000000000000000000000000000000..6810489ed6e7c43d097c02350dbdf7ddbd2b006f GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|JUv|;Lo9le zw`|w{dES9BVUdgRTizR+e+nF)ceee6F+-%XopZ)x)*Q1(MXXB5~&zw{0~kIyM$kUl1TrsexTV5p00i_>zopr08!2}+W-In literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator11.png b/assets-cg/img/elevator11.png new file mode 100644 index 0000000000000000000000000000000000000000..d38971d07c8eedea0e6bb65e6ec41c1b4c441e91 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|d_7$pLo9le zw`|w{d7go_+Dtx4fo;c+TL*9YxV${TtYOx`Im>8Bgif8Rx?C}g}FoUP7pUXO@geCy!gEajB literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator12.png b/assets-cg/img/elevator12.png new file mode 100644 index 0000000000000000000000000000000000000000..aad06e50e0ab3ab772452e4e708970bd9d085863 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|0z6$DLo9le zw`|w{d7go_+Dtx4fo;c+TL*9YxV${T98oaSM`yte*2QcB1_|e%IkQ}5^JAW1`pCG& xEbc&>vR-(=ebyg;x_$e0=_#mLFJ8^aaCf)#nIC&ZzXHu>@O1TaS?83{1OVqxGXVeq literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator13.png b/assets-cg/img/elevator13.png new file mode 100644 index 0000000000000000000000000000000000000000..cfd1c5e3b16ce6ffb671beea9eba11e0d613997c GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|{5)M8Lo9le zw`|w{d7go_+Dtx4fo;c+TL*9I>`>`o^-*~(VcKBA{4K}M#UQIts$q@be8nvvnardM ucQ*afJMcU{r|3#4qv1}$Sl*+03=E4WNS}G_|JDU)GJ~h9pUXO@geCwxBruEs literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator14.png b/assets-cg/img/elevator14.png new file mode 100644 index 0000000000000000000000000000000000000000..68820baacd9dacf8303dd76666784724bb95185a GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|96VhdLo9le zw`|w{dES9BVUf${6^t$t8`3{3w%N|+pP0_D$*rdC!ZGd}IY*vyz1qz%zkcJ%!0W6n gi+Ezopr05GF1?*IS* literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator15.png b/assets-cg/img/elevator15.png new file mode 100644 index 0000000000000000000000000000000000000000..fae3c265c0eb98b765b6a3a00262ba700c393f93 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|+&x_!Lo9le zw`|w{dES9BVUf#c4}*mB&zyOx&E%ENGogTe~DWM4f`dTc{ literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator2.png b/assets-cg/img/elevator2.png new file mode 100644 index 0000000000000000000000000000000000000000..0e8ce78cf327a82013debad7e0405b7f7825861e GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|yggkULo9le zw`|w{dES9BVUdfmBlEW$yCWOYKP!IXak$oTUf@;*2n(;=?k*8d*b~DVc-*__cI%~@! sp4n2jjxcF9u+Dt^DBHbWoQIj2f$y2bnTjxP4xqUVp00i_>zopr05@4L&j0`b literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator4.png b/assets-cg/img/elevator4.png new file mode 100644 index 0000000000000000000000000000000000000000..f909bc85228d32fc9ed0cd9a41490e7b22df584b GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|{5@S9Lo9le zw`|w{dA@=9&CQyQMj$wN^g7>kAvQIqSr>1*NIU2p$YL;)F5KDlOYgw*_?)6ErHppB u3s)}m)tSH)F~Rajkj&W_gDeJSW`-nD@hrB_yUziQX7F_Nb6Mw<&;$T4!!kku literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator5.png b/assets-cg/img/elevator5.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd1d8a7fddf603a4445981710d7bec583ddc19b GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|d_7$pLo9le zw`|w{dA@=5&CME)*7uLH+kGXOg~I}c7{Zt@7y!vY4z4VeTai sVkvymdKI;Vst0KK0qJpcdz literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator6.png b/assets-cg/img/elevator6.png new file mode 100644 index 0000000000000000000000000000000000000000..e46c9afec1372a1ededae5e6ae8068643fa20ac0 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|f;?RuLo9le zw`|w{dA@=5&CME)*7uLH+kGXOg$-vFc0M#|5NSwc(3@RwGVnUVn5Am$t%3GI##xr=j`njxgN@xNA^5Ho< literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator8.png b/assets-cg/img/elevator8.png new file mode 100644 index 0000000000000000000000000000000000000000..227736b3544d24cb2ed4751eb2f2b961483e0bb6 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|LOop^Lo9le zw`|w{dA@<|TaI0e-jM@9@ZeE)yW%mIHEA(L5^NK=0(cIjTkDx#DP^>5V4c~lJ0k#D?_GicOu|%Nb8deUx;P)=$_hI9;0|@{sfyqsHmWffg`$y85}Sb4q9e06-Bl A;Q#;t literal 0 HcmV?d00001 diff --git a/assets-cg/img/elevator9.png b/assets-cg/img/elevator9.png new file mode 100644 index 0000000000000000000000000000000000000000..811936f0d9131643012a4339229459d8aa32894e GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|{5@S9Lo9le zw`|w{dA@<=TaMk42L2sCZY}&U^TR4NrUeoXC(3fNR=j2^V&FDnw{3Xws40+{Lt;bv vXT_#Y?&XXpq&`YIN$V$U7M!lFQO3yd$W}b7+UD~epwSGTu6{1-oD!M5c3JFQm99qoA zm;vmKNM(iL8tb;=HkO{!mUOp2o1Oh831OoXCqE zf@Pdy+wROZMf{YhQ{!ehmvRpbqnVtq^ThDS)>`&dDz)KDa9SM@$MJT9X8{9{J)7Gh zPg;%asch%GZ2)eGQp*%8j{!K21HmQ<=mVnLjNAxhQ5TT=4ggV%mB{am!~^QqEZaE3 zq&k1qq?#US=QeV!^!1JTJ`OaYlE&nZQzR?|Qkv^b&$sZy%7O4PNa;XET4`HBzG7St zDmt92Hzo4?7&EPUbd_bK704g=p+SiE@C%52;}XQa8`}_j(G|5gV&4Lj z+H(EV$OPL9#>^eoLi>c)LK0#Ru}0b_KSZshVT?T@t9pxemRQEe*FC2F0!qHL$QO@$ zsQ1C%+};OzH}u}$3+kL+>-MtC579N%+uIxbH+GsY#0I2T)LDTIBeJ@ye9RXbhG$iq z>88$t_7wFNZEe#m(WB~nLzQXz)?Ui$=ITI&2InxNfvgS!Qm`6GCSvtyu4^`PW5(#% ziq`+e9t6MGH<%m7ur=#UFf}yxA{ptrV{wE*Z@Fyrx66ezOJ0BLb;GDUZq2$c!31+2 zYKTb*pLBl;4(9c5?QiXxG-@li`yMNQ8K&BVz+I3l`#35^`B~H@c=4_;U``C;kzo%u zQ|ktM=+Yjl6SwakJJad%qDfwUY9w`ZFX;pF{ulZ zU289L-d?(+9mI?_ShZ(O@kXwqR_}mP zXY+g3S1;e2U7S{7Qhx=mB$FCct|a{{CbfR2xS(VE^6#?U=3;~|*`VCTHJd(5{5Y|# zFi|apr(SieMb0g~x;Ai{aw?QrcwyZB4HrS2(*X^0(t3>Q<=+_n%lNdO{iUhBVtn@L z^=Fw(keg-Vbkv!a6=+lo!KuB*;4--|UYvq{1PgL;d`INaZA;dPlO9A9(yrmW2`hTo ztd-wjd%O`d`c6%*OdOZ(&Z@Q)CL7h}vj$}eS9NdB*@gaJ^_Rd`oJ+_p&N-dXEci2} z!eo=$eA=L_id%Y>j}Cm3ivWjd6g&yU596qmBfSqK0*{|?tbV`a*e;se#f}%>BS7@Y zK*pe+V%yvgo@Jlsux|#ERAZEb1(gzefGoh|xEtH^Dv={8dhCC10Tv@6Sgg4SY26)w zIJk}eCBEXHvfazS^B7+2G5mVwh19-?=n`)Kh*ogDxV}2O*pnLx7_9j7fYFY|mG~

R*hJu54-}dGL{$3r5za(3g+U4 z>VkgHme)Emns;G1cBOSMWM&29=F>Vr+?m$R%*55gb7c=!->DHF!?|aN7#qA{5as4a zgb6RtZk85bs5YZF_TE-l)vXWo_>P;44|fzw<5ctbXp06^V$RlnDNj;+VSKq$85*x~ zt-jf3SEkvSipwG3-z zgP4kSQ-I@|7TCL;);u0EHyv#-ruBH@@eO8SxcRiWpdsm85@r@Al6@5R=OZ-pSwCC0 zK2V$|*(=B~&rS4)$3rHUfU056x#_i?pgR1dFy5-z6(G*QIWr~r@RU?d=@jGAx*Ouo z#n8m^D}*+67hKES^_6 zw}nlZhuNJ}GZ$0a=vg3?VK<>q5I}!F5W5oZ0W5u+1}P2+Z$_IH<@gW?LGY+UGMSw%{1=miO8IpPxBlfsifwTyN1t1pBZ+eRhvT7plxS6M`#D*xJNMi`I;x^;I4A5l-u z&*Zc18lOq>nSBPx9A_l;<@m9AG{*5Z9~Dh6JG%8z(YOp-vi>OM0uYa)29@cxJrD5X zdYtBpM9$|fL_fj#m%RcP;QuC&@p%XbLBgO%*U;w5OI~pt8)9N-A-wxD`{KLmX$A^(y^BXMfhm)P-~odRY@H0|0X@Y z|CDZOuJizju3;v0+A9xD;^xre zL+d1|^UFgkc^`TlNV426>!ejjQ*Q|SUoY`tbCPM<8)aMy6^2YV{u?#uO zvG@}!_{ama{KTpN{J#S59}Yru7>HN}nRF?qUr9>&Z?8& z^W0>*ukK;`<*CQ1^_>*@=}AAj=#(G5^KB*l`ki>}YiP(R?G1S#YOgu=<%a*A13*dIO9R7r~(m(Z?8In8SfMV>&fH2TrJCOJ)L z(&CsLWy-<6G^V62I3~$idpM23elrr|+nW67>c+xby5_*z%}pDW9+b48b!y+c&QZgA z@<9nTGzHPVM%_&&{}va#+gX1EPmojdfr|HKHlPVKqeDS=$%Zm=hoME@(HeqMg z&bl&y-e3Y4ZVFy=(~mtKYTU0&h@vLtk3$moyR+(N&>JrKF!1eM-KgZ1zOQQlCSO^>SKSzXyK{ zk<&GeWeA4imX(_qn0rHS4(qUSKAA zLnI;i%O|&Y(*J`dJF%DpiMItLtR<)UKlMrrkX87!Gvo8B_#Z$X+Xf^DFUbtN|F`V` zvKBAdr|N+eIe=s*0NG>)k}e0bs~O0XXMk)jcy$C;2PrN0kf%^se*#|C6YB@MgPh68 sl!42hi6={ABnCGl(rwNpWJ057fXN3w*ro?A%;p0{+H#>uhQF5n4@g5sFaQ7m delta 3568 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 LqP~~FKXLy9qk5ZW diff --git a/src/draw.c b/src/draw.c index 59d8128..c35c0c6 100644 --- a/src/draw.c +++ b/src/draw.c @@ -7,6 +7,33 @@ #define DRAW_OFFSET_X -27 extern image_t img_player; //player texture, 12x12 +extern image_t img_ground; //ground texture, 16x16 +extern image_t img_spike; //spike texture, 16x16 +extern image_t img_ice; //ice texture, 16x8 +extern image_t img_glue; //glue texture, 16x8 +extern image_t img_jitem; //jump item texture, 16x16 +//animated textures +extern image_t img_elevator1; +extern image_t img_elevator2; +extern image_t img_elevator3; +extern image_t img_elevator4; +extern image_t img_elevator5; +extern image_t img_elevator6; +extern image_t img_elevator7; +extern image_t img_elevator8; +extern image_t img_elevator9; +extern image_t img_elevator10; +extern image_t img_elevator11; +extern image_t img_elevator12; +extern image_t img_elevator13; +extern image_t img_elevator14; +extern image_t img_elevator15; +extern image_t img_elevator16; +image_t* ani_elevator[16] = {&img_elevator1, &img_elevator2, &img_elevator3, + &img_elevator4, &img_elevator5, &img_elevator6, &img_elevator7, + &img_elevator8, &img_elevator9, &img_elevator10, &img_elevator11, + &img_elevator12, &img_elevator13, &img_elevator14, &img_elevator15, + &img_elevator16}; void draw_player(int old_x, int old_y, int x, int y) { @@ -22,16 +49,10 @@ void draw_player(int old_x, int old_y, int x, int y) void draw_level(char level[], char upgrades[]) { dclear(BG_COLOR); - extern image_t img_ground; //ground texture, 16x16 - extern image_t img_spike; //spike texture, 16x16 - extern image_t img_elevator; //elevator texture, 16x16 - extern image_t img_ice; //ice texture, 16x8 - extern image_t img_glue; //glue texture, 16x8 - extern image_t img_jitem; //jump item texture, 16x16 unsigned int i = 0; unsigned int x = 0; unsigned int y = 0; - while (i != LEVEL_WIDTH*17) + while (i != LEVEL_WIDTH*16) { switch (level[i]) { @@ -41,9 +62,6 @@ void draw_level(char level[], char upgrades[]) case 'v': dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_spike); break; - case '^': - dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_elevator); - break; case '~': dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_ground); dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_ice); @@ -52,9 +70,38 @@ void draw_level(char level[], char upgrades[]) dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_ground); dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_glue); break; + } + x += 16; + if (x == 16*LEVEL_WIDTH) + { + x = 0; + y += 16; + } + i++; + } +} + +void draw_level_anims(char level[], char upgrades[], unsigned int step) +{ + unsigned int i = 0; + unsigned int x = 0; + unsigned int y = 0; + while (i != LEVEL_WIDTH*16) + { + switch (level[i]) + { + case '^': + dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, ani_elevator[((int)step/2)%16]); + break; case 'j': if (!upgrades[0]) - dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_jitem); + { + unsigned int buffer = ((int)step/20)%4 - 1; + if (buffer == 2) buffer = 0; + drect(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, x + 15 + DRAW_OFFSET_X, + y + 15 + DRAW_OFFSET_Y, BG_COLOR); + dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y + buffer, &img_jitem); + } else level[i] = '.'; break; } diff --git a/src/main.c b/src/main.c index eed77db..20b06c6 100644 --- a/src/main.c +++ b/src/main.c @@ -33,11 +33,11 @@ int main(void) volatile int has_ticked = 1; //fps cap char level[477]; int level_id = 5050; - //start upgrades (mostly bools) + //START UPGRADES char upgrades[] = { 0 //can jump }; - //end upgrades + //END UPGRADES char jump_pressed = 1; //avoid holding jump char jump_buffer = 0; //jump buffer, last 3 frames unsigned int jump_hold = 0; //number of consecutive frames jump has been held @@ -52,8 +52,10 @@ int main(void) int start_y = 9*16 + 4; int old_x, old_y; char spawn_buffer = 0; + unsigned int step = 1; set_level(level_id, level); draw_level(level, upgrades); + draw_level_anims(level, upgrades, step); player_x = start_x; player_y = start_y; old_x = player_x + 1; //offset to draw it on first cycle @@ -64,10 +66,14 @@ int main(void) while (1) { while(!has_ticked) sleep(); has_ticked = 0; + //START DRAW + step++; + draw_level_anims(level, upgrades, step); draw_player(old_x, old_y, player_x, player_y); dupdate(); - old_x = player_x; old_y = player_y; + old_x = player_x; + //END DRAW clearevents(); //horizontal movement & collision {