From 0dc8dc83c6530fb00b8fb1d78af5129e32623f82 Mon Sep 17 00:00:00 2001 From: JanEhehalt Date: Mon, 21 Nov 2022 05:25:29 -0800 Subject: [PATCH] movement now snaps to dest position --- README.md | 2 +- inputHandling.h | 6 ++---- main.c | 21 ++++++++++++--------- main.o | Bin 6816 -> 6824 bytes spiel | Bin 17720 -> 17720 bytes sprite.h | 6 +++--- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index ef20ff1..e9151f5 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,6 @@ Fantasy Welt oder Realistisch? ## TODO -- Bug with movement of sprite +- Bug with movement of sprite after spawning a few other sprites - Drawn Rectangle problems with negative width/height - Selecting Sprites for moving all selected to the same destination \ No newline at end of file diff --git a/inputHandling.h b/inputHandling.h index fdd3359..8642c82 100644 --- a/inputHandling.h +++ b/inputHandling.h @@ -1,7 +1,6 @@ struct InputHandler{ int pressed; Vector2 rectStart; - int clicked; Vector2 cursorPos; } InputHandler; @@ -41,14 +40,13 @@ void mouseInput(struct InputHandler *inputHandler, struct Sprite *sprites, int * float width = GetMousePosition().x - inputHandler->rectStart.x; float height = GetMousePosition().y - inputHandler->rectStart.y; if(width + height <= 1){ - printf("Klick\n"); + //printf("Klick\n"); addSprite(sprites, spriteAmount, texture, inputHandler->cursorPos.x + (*camera).target.x - (texture->width)/2, inputHandler->cursorPos.y + (*camera).target.y - (texture->height)/2); } } if(IsMouseButtonPressed(MOUSE_BUTTON_RIGHT)){ - inputHandler->clicked = 1; - sprites->clicked = 1; + sprites->hasDestination = 1; sprites->destX = inputHandler->cursorPos.x + (*camera).target.x - (texture->width)/2; sprites->destY = inputHandler->cursorPos.y + (*camera).target.y - (texture->height)/2; } diff --git a/main.c b/main.c index 121e1d3..e7ba166 100644 --- a/main.c +++ b/main.c @@ -51,19 +51,22 @@ int main(){ // Sprites move towards their destination + float movementSpeed = 10.0f; for(i=0; i < spriteAmount; i++){ - if(sprites[i].clicked){ + if(sprites[i].hasDestination == 1){ Vector2 movement = {sprites[i].destX - sprites->x, sprites[i].destY - sprites->y}; - if(Vector2Length(movement) < 10.0f){ - inputHandler.clicked = false; - sprites->clicked = false; + if(Vector2Length(movement) < movementSpeed){ + sprites->hasDestination = 0; + sprites->x = sprites->destX; + sprites->y = sprites->destY; + } + else{ + movement = Vector2Normalize(movement); + movement = Vector2Scale(movement, movementSpeed); + sprites->x += movement.x; + sprites->y += movement.y; } - - movement = Vector2Normalize(movement); - movement = Vector2Scale(movement, 10); - sprites->x += movement.x; - sprites->y += movement.y; } } diff --git a/main.o b/main.o index 0fbeb877df53b53902dd264fb64c186344f7f126..3b354523863425ecc9e05f0b7b01fde431558b65 100644 GIT binary patch delta 1132 zcmZ9LUq}>j5XX1!|6XUep5E>4h1wPB8cKzz36W-L3n{6DZ-xEC9s(1@JT%a3gSv!b zD8h$GdXea%!-xL8cu08BJ!ljd1ZBM_23bd7P;T@4?Hz3m%=~7*pZU$q@8Is$Ox4^_ zK}}Q)0r>DML_nIJfdqhrt&Y;XjK6YSi#IQ3{F3IwpraID+RJVIF$6~e)dwB5RNv~j z4Uodm&J@LmE|ub2S9|CDcf&X>2*RA6ri>C{wM-k=yEBFnzr`f&)N3vI$*IA-c6Dx< z6^!vxi0diB_55Qv%?T}_`|yIhj264=ZlV!O?wS@-o$Ox5pRd26D}P6=90fs$^A6e_ zE&0)@jkm37kkYCKeFTKDb@1yIW(^+p?1D57dzxy;Sr`A#)IjB&K1hq2%_aRj4(p&Fxkhs0w3Qwc)PbYGs~fHv$4$k2rg6p!O1#Y&J|M6X$Bk%cBOK{RclB^K($C88y6lE_%+t>n4R!<;^_(0mJ>#r;9~ z#H%dL?R=0bn8iHi$$Cb~b3JD*`ZkNcYSFh_^fp`w%1Wn55*h1ON}lU>5+NkR5GtWw zrJ6yqDf1B6M$C(GGV}p-9F^Rn16qm6+(jYzxnVtI)!X2xkPTQG^78E>A`eY4#v=Ijz0VOr3%j?8Vyux7WYcVP-V+D0H(H zD#q(B19l!I>~3F81hY_nE*R^<9s7LU%a$X@0}yR{0ZEHzbfEG9`3*VFB8Fv@JY zJ&-GZzurz}ZPq&g(>Q0#P<~*qh5I;ZKX7R7i>{xb&a{@LiVEpdH5<~pS9Cpon@jBY zEK7Z`G03vP^df&SAf7^8ntRO+4Vra?LVv73Hq&Nt(ZTMr z)H@p+>Re)wVZmNE0ZB{Bu_EIMb~+m%i+#?HeI7nk-kQ1SOKWc0i(k`PZ?0l-ZJzcx z#pJU|u>@6pNj50d9HhO33I1@ZxYN~C$3N_^50Gy>`>E@q-}uHQh$Ut1Fg|qEJk7YE z)Ni4w(IW4)f?XbabiiV9Sa4xYV@a#kq%+btPpmH-0X4w4q&P^YL;@+ue-jEn&bZG( z2Sz-5TtSyBrYI+bG9r{GLYWlGE1|p=$~UewT60!>8$SBG zZiG9h7m&uwZFG3-$MI4{?J{+hlbY{3jqizGFwwOpx`@R-MP2>Jc?Y+psKW@+7Q1oF z&&|^#c%G=1qkP*!I{CT7_?YND6J2MbNt_|NV4@pL)Q8|#)GZE@D7bS4oxF2g(B~#v zY@)Mx%&)*DO!$?(SDgeX@|*8AuF_ae=gynxqn&qEnz}-`Of+hu z)h6178_W2gBvGb75XZ{iLJtlqO|EXQ;g-cIr3pq60%6J#k^2K-*Vmk1JvJ7W;+sGv iR3NBf$`LhuOLgLPwHX>PMUoStJPa9(P#(qp@|s_Gu4}nT0Cw+#ztz*+yGF2W*%+I%wOfcNPN!Wz%CO82S~@moRP5dR)v~JEv9v; z7Z#$?YkqgW`~VUl7-nddX>BV18?IB~=d=xA{cm`a3g4iE0FTY9BFm64kxKf*wA((V zL#Y2HxDVL02+2c{Xq1RT*LN1SyoVz32IMRBgt-_8X`9)ZatW|7mm-j`A`{<0C(I@5 zc@-^C(PH&n1m_y=tDkk0sI_<<-DOF41QieA6rgao~y6YaKGj+L?@JwvvDFbo=Jffx`%kU@f`?Jz#m^mQ0ks)5%kn%wI>@{zaRsFp3Y38)z*~ro1m45FKkdDqWFJm>^dbH1-E*xhd6zi_=Iujt07#2 zU-p9%WLNyetDvl%sj4KdAQJEG%DB3!fOUzo^SY?pA!m} z;C!1pvQ0ZoAVPe{BX3^Sw1>IX3w%|DSnkO|h(F@;zT*$OymR~^-n)31h{bMz4^|W| z5zm)I`J{9!`;6v}?XEcl-{>gpqZdAZGejGxcR_5Yk8P8=I{5n{=St&s%^ri!>CtK< z8ht_{LRkRM!c$Lsa&rnxL8BIS|A$F{c_dC@0*dy+QwEyNbUt?NZ)K81L)zFPK+Dr_R>zQqa&pQIGx_!mYuRbh!ViBW9yMuIJi0|}EB(=;?WX<|5i11ICsE_v*=aDz%sKZv-~G;a&z+VNxa9=C z9gSn&$0Ox=FBx#9#yIFa?d*+wP~LB~8?W!VZ{SC1n{-Hfk>i>tAw8 zX|SG_Ct9#k+Md{mv5{Jnasj%PWT$(RGVPql1JcA-8Vr=g;c(g&C^4yNaFEjz#-69_ zw9{DA?8#ey%Cg75FEexs5+KCCrNlI2a^3{IR)ufS!vK%}P}%7!Ttn{w+&%$+g@lPL zp&v|(Gx{SDdh{5&x7xG_g__1>nTW!b?=0j$ha&L?Lc8fovjcb1!{$=M4!{OEgFprq z8Qli@(wyVWQ_(CHou;nmz`C0I>SsH0)Y^!S=30!|ok|a3BcOcC8<@nsGhlBtCf!eM0pS&BYyo0G=zKVMlK>I~_i5e!ApQ-d`FMqg-k98Cu{5g*z>jELd@Qxj{$ zuA5i~XoMiRykkszkHW4Evy}qz_OimxU$Xqy-^W5Yq)%x}E|9hX9T8W2BeeIxW8eKpA#y^VSSU9rI?oI z14?}B$2y)=JGoT$OM|b}rR>+3_LHwH6N_moLi`$+x0he-@(%MAy!Y2?B04+(uPU24 zPTZfPL%XHRDVsFZuhE~goj1RRJE(%AKZEP7fvAUeS0EmvH*D|H62UYoP0%0LEQyaS zb!)Xz+PJ7_gpvUsg7+Y8OiP`)3^a-&{$Ube&Wcc&fFf{+7J}wB`Xg;QJ|pqdqhfJT zayjZEAiT-FtHHBr{oHIAd&k^9fUf4(VZ4#fFQ~(bw7Z}co9NlX%$TWWriM_F)K=IR UjeBT4pB)oS34=kYo8PMa15{t<2mk;8 diff --git a/sprite.h b/sprite.h index 48db6cf..280f887 100644 --- a/sprite.h +++ b/sprite.h @@ -4,7 +4,7 @@ struct Sprite{ float y; float destX; float destY; - int clicked; + int hasDestination; } Sprite; void addSprite(struct Sprite *sprites, int *spriteAmount, Texture2D *texture, int x, int y){ @@ -13,10 +13,10 @@ void addSprite(struct Sprite *sprites, int *spriteAmount, Texture2D *texture, in (sprites + *spriteAmount) -> x = x; (sprites + *spriteAmount) -> y = y; (*spriteAmount)++; - printf("SPRITE\n"); + //printf("SPRITE\n"); } else{ - printf("Voll\n"); + printf("Sprites Voll\n"); } }