From 23b98fd3d46e3d589cb4c91ad983581890beca60 Mon Sep 17 00:00:00 2001 From: Milang Date: Wed, 4 Mar 2020 15:08:35 +0100 Subject: [PATCH] fix minor camera "bugs" &correct error provided by previour commit --- SuperCbr.g1a | Bin 63392 -> 63408 bytes include/ennemi.h | 4 ++-- src/camera.c | 26 ++++++++++---------------- src/ennemi.c | 14 +++++--------- 4 files changed, 17 insertions(+), 27 deletions(-) diff --git a/SuperCbr.g1a b/SuperCbr.g1a index aec7ac0b53e910cfe09ea23c8c791dbac3587fa9..180a0723c5790c4e719e9b1fbb83502950c35478 100644 GIT binary patch delta 4907 zcmZ8l4^UIrnm;Eu$c+ga5)f20|9mznD2G2)kRXXrMP&*K7PPh|5C#1AKtyY$B!T2@ z05c(6N9}7n%Wj=&U!8{M?Ywnf-FbBCY}qMqhA4fD*0)VCRi9M2H$#6^In&akhjX5=#+rz!Dtb&Y=d9 z^Oi;5GI78@ah)qs6ys9Pqv(WRneq|k+Gluik`7}Br%!G!-j{j5Tw5xQFlx3-cKh{_ z*G*DeUpR%Nc;m)V@HLIr+SmNlpa2O`OrmOJ*F1@x8Z9@Hy!7=l;C5I$Ol%gbSKQe) zw$1v_ZYPm{v(;y7WUN=4@!irgX}Thxb-BZfEwX$zKc#EW?Gm@s+Gk@%3Qf}7R4ZfY zGqWVkAPVE!tJx_%#=oxnW}Wrs-3?snlAgqO!^rI{lQuH>Yj0iy17QiZ3aNpCMlAHQKsU+qu|Q@Tz%&W@k^{(YUAxm<*N_P z9-M8QMbd`ZVCqCvl^B+(ltFp*S&L!|8=l&dHpDh`*V_Z5dF{c(!1P2kCMgYDiN^JLyAoRL8|@f2`gtz!^6XWrr1&3AjcqKJ_l?EOAxsXyvraz zuIG$Pi|xkD-!v3wo})Ns{#)i>Xdd0(YJW^|+$udtar6i{Ziw$$xD^7dW!xRd+OwG+ z#(&D~Q7?CT+#XY+FVC7#>(J`Ea{GR*(f2HLbwl`hvGD({UWt}Dx2o9*Q9%B7s#%}tFw=j33I!J*Rji%p!Tlj5aeE?->UV-t zr^hZUUww4;$n4=+VGGRZ4YMXYDvAyw^u7S5)P_jv4M;cutk7}ud^l-Q${{UYR*+^L z(4=-1-#Y8+&de^B+L)Vt^^B`qrLi%aq^e`V-u-;_!&dPDg-Wp*-$&#qI=Nt(yJIu1 zXDoH3&Dk;HfhFFmdw2x2sQ%8s0mNX-z6l099@agyD$F>H$V#*xgQ6Le)HP#Xsk6g< z&6MbkuVt)`<{vG}p&z}wL&)iF$HCSkomNHG1Mii$#ox4ikN&eI{C}=4i;P_I{c8M2 zcZZG1y<#agA+qq_ayiYziuyw{FBqMk~tLNn1-K{wR< z%3JuYs6POpEe%@C0GqoLxJ)=oHz^#wz1MYtD1FQi*mXWDUTV0r+jeW4^eA8J2#b$J zvzK^})akwyA+S0JFYTQ5G_sJe%?4~nHKyz_6_$R`g^Rk*lKCf1bZH`Pnso?3g0 zcBz%o{Bll3I}{g@j|?TQiUt#j;)vKPHC5F3oJUPCveBoVnTzE zdt6)Ea=Q&hXW#%RbO?{`Vt8arN?{dC!c#k3_oe_T<2`IuWv%zhtjl{pKL2r@QU{5x zKBX?Ww*arFpgFo}Xw*{}?_c~^!VE%jbMIha3f8CkT_W2IB#*7SiBOYx;x2Ar~jAF z5-n#I<(;f1Y>`ou=#xmJzsAuOvy$zVnH z_GsK4b^aX2n`~wLxzx;8*y*_kc-U^m@K~VP7%MN-pstAxCVdj`^q*guBL~^jzV89! zd$a~yl>TH0tVO+)20~>6{Y{c_an|at_n#GdJKZpcW0_-FtQeSJD`-V6bRe>r^&7!p zsyBWdT!Z6`ak>#N^sIJwjN^L$dd7#X%y_idP^UYmr<;;~P2EVhMZ1x1i#JY)+1(k~ z-^8w0`r>RWTpoBz%K~p0u^7K#3w{YHEl;u9L{dk&(UnEm#U-iiaS=o+ zhqw!>98Et$UsOP?T7^gh9F(d7L>f^Lo6{q3-GRP`n^aZeVa}vp9tTI~-cNap`d$1h zBdEYRum>U>3nB6+q%%8XjZ5tvNE9PFermQTmT!vT}lZeGPrXf6JP)?szK%D zknk{;fQ!PjG*p-eK50PY;9j(N6UeHb@Sztu(GD<4VKl<@pT`iHDnsPI9s|7x1g0k^ z0Rk}d4C2or0tSe#?D1Yi3VIRQ05=o-X!{Eamq;Fkwup2%%5V`vgoiqt=;t#pA) z1E>~(>StiCFbzz2pw)xPT;L}`8{)2H7Ok)e3k=>B76I#5l!Nw(3`Aah%Cn>eCzjId z1E2|E)9a~ygg=w@FGsmXUzK`c5NNxB6-#L70#IdA3_TAsT;l(NoXOFSCZSe4Mxfu1qG&O+ z13(U-UZ5r*3s40|N~+_)LVgv0rbLBTTt_6K0S@>{Kor`%Dw<0|_*ECVp_eN)Z^9@I zNDbKtD@hWA)Kgd)XcmnkvXteFn|(OK4{y%Falkw=%!^A^I1!$%%@I~Eo&=gfq%@7o z-TK2%+!;DUxjfnSE=~sFEtlsMex3?#FBh!onJ^o!s838yt}g!>p4=X)mFmG975&V zkvRL)%-RE$UyDuB`bTzg`RZ6AkV?cIuhcH9q#|MvIrhtGexULZHbgw=F$yvdw#oUm}wg0uD@EJFgI!jsDMMN>#>KsP`xkVj8I)` zR?+Ipi)&OEyZBYRdoVU~1ABDvJG!SHPjbfB3gGw6*B;FF^bST#-DsR`&ifNFpsg{BV!UExfYZ{r{@+d|wbt9{KNy!nFc=@9t1 z7TXMj%II6J2Zey{0Re9080cHha3j{`akMwY&sgt?;0=7#_OZxt19Wr2BFH`_!kcv4 zAoTZw9`yv*AzBaGpbpeSvX0PX0UqK;j=hE_xQv$5 zD<%NpBt%-+ph&Z6u9`@IXQVvtM$0t3On-WO3w?h-UenjQPXm~iyIY;aE1SlEQY-=haZ#cNI)^w`(xCFRz`dUhj1@Wj*yojX%cr*N}6DLIy3qVat z!C!nc{kb7G_SOhDaQYH}QPWn9Gq`~^odo`uptv1A&@l>Dn`;%4Vu^>(kembXyLG2o{`vDC4Lvu81^;Pe-Z+Omkj-O|OULJrKfLnX7*_m)gO4~K z9ErON87SgMrXDTW--gJxQjnVep*-@6Z9Wr5Wcw3DDunRpB-vUPlcD@)pLzWmHT=V* P=Jd1maBTI?%JKgLRg2Pc delta 4817 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 e$S354) { - y+=5*sgn(mario.p.y-y); + y+=4*sgn(mario.p.y-y); } if (immobile>=2) { //y+=(mario.p.y-y)/3; - if (camera_vy==0) - { - distance=2*(mario.p.y-y)*sgn(mario.p.y-y); - } + if (camera_vy==0) distance=2*(mario.p.y-y)*sgn(mario.p.y-y); //décéleration après avoir parvouru la moitié de la distance, sinon acceleration - if (camera_vy*(camera_vy+1)>distance) - camera_vy--; - else - camera_vy++; + if (camera_vy*(camera_vy+1)>distance) camera_vy--; + else camera_vy++; //y++; - if (camera_vy<0) - camera_vy=0; + if (camera_vy<0) camera_vy=0; if (((y+camera_vy*sgn(mario.p.y-y)/2)-(mario.p.y))*sgn(mario.p.y-y)>0) { diff --git a/src/ennemi.c b/src/ennemi.c index 71cc212..38ae9aa 100644 --- a/src/ennemi.c +++ b/src/ennemi.c @@ -20,7 +20,6 @@ void ennemiDisplay(ennemi_t const * e) { if (e->type==NONE) return; if (e->b.x<=cameraX(0)-e->b.w || e->b.x>=cameraX(0)+127) return; // do not draw if out of the screen - else e->discovered=1; // for security, tag as discover all drawed ennemies {// draw int tx=0, ty=0, dsx=0, dsy=0; @@ -91,6 +90,8 @@ void hurtMario() void ennemiMove(ennemi_t *e) { + if (!(e->b.x<=cameraX(0)-e->b.w || e->b.x>=cameraX(0)+127)) e->discovered=1; // for security, tag as discover all drawed ennemies + if (e->life==0 && e->type!=NONE) { if (e->p1==0) @@ -250,16 +251,11 @@ void ennemiMove(ennemi_t *e) if (mario.p.x>=e->b.x) e->p1=-1; if (mario.p.x<=e->b.x) e->p1=1; e->b.vx=6*e->p1; - if (mario_fatal_hit) - { + mario.p.vy=4; mario.p.y=e->b.y+ennemi_heights[CARAPACE_VERTE]; - } - else - { // mario bounce - if (mario.p.x>=e->b.x) mario.p.x=e->b.x+e->b.w; - if (mario.p.x<=e->b.x) mario.p.x=e->b.x-mario.p.w; - } + boxMove(&e->b); + } else {