From bcfb4e751502c3299c3e7b651a7a736dac779cdd Mon Sep 17 00:00:00 2001 From: JanEhehalt Date: Mon, 21 Nov 2022 01:59:10 -0800 Subject: [PATCH 1/4] Reimplemented placing sprites --- amulet.png => assets/amulet.png | Bin main.c | 21 +++++++++++++++------ main.o | Bin 5544 -> 0 bytes spiel | Bin 16464 -> 17568 bytes 4 files changed, 15 insertions(+), 6 deletions(-) rename amulet.png => assets/amulet.png (100%) delete mode 100644 main.o diff --git a/amulet.png b/assets/amulet.png similarity index 100% rename from amulet.png rename to assets/amulet.png diff --git a/main.c b/main.c index c24c249..c5c15fc 100644 --- a/main.c +++ b/main.c @@ -19,7 +19,7 @@ int main(){ int pressed = 0; Vector2 rectStart = {0,0}; - texture = LoadTexture("amulet.png"); + texture = LoadTexture("assets/amulet.png"); int j = 0; struct Sprite cursor = {&texture, 450, 225}; @@ -54,7 +54,7 @@ int main(){ cursor.x = GetMousePosition().x - texture.width / 2; cursor.y = GetMousePosition().y - texture.height / 2; -/* + /* if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)){ printf("Klick\n"); addSprite(sprites, &j, &texture, cursor.x + camera.target.x, cursor.y + camera.target.y); @@ -63,8 +63,8 @@ int main(){ if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT)){ if(pressed == 0){ - rectStart.x = cursor.x; - rectStart.y = cursor.y; + rectStart.x = GetMousePosition().x; + rectStart.y = GetMousePosition().y; pressed = 1; } } @@ -72,14 +72,23 @@ int main(){ if(pressed){ float width = GetMousePosition().x - rectStart.x; float height = GetMousePosition().y - rectStart.y; - - DrawRectangleLines(rectStart.x, rectStart.y, width, height, GREEN); + if(width + height > 1){ + //TODO: Fallunterscheidung für negative width / height? + // Auslagern in eigene Funktion + DrawRectangleLines(rectStart.x, rectStart.y, width, height, GREEN); + } } if(IsMouseButtonReleased(MOUSE_BUTTON_LEFT)){ pressed = 0; + float width = GetMousePosition().x - rectStart.x; + float height = GetMousePosition().y - rectStart.y; + if(width + height <= 1){ + printf("Klick\n"); + addSprite(sprites, &j, &texture, cursor.x + camera.target.x, cursor.y + camera.target.y); + } } if(IsMouseButtonPressed(MOUSE_BUTTON_RIGHT)){ diff --git a/main.o b/main.o deleted file mode 100644 index 6b235b675dac36d4dad1734a7d280be8ac16719e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5544 zcmbtXZ)_Y#6`!-+*pwuDE&&3K#C=G>1oz0FN@=4C&i2`vC{ASJBn?uFyYa1kNAGT} zyS=2TMD55~lzYmqucw-FfqSzxU?7H-GkSdT@BCEf!;{#n{)_`beRS^*ppLr-YbdTiF(Nl6$xL z?41PnzSH1dWtDp;SG=RQ(%#@r?hmf|Y_>5zeKrvJEBxxs4(=_|u)$;KR=C%;p>lb` z_-Ad+*gbe_&FD^b{cp}qa5e{=>PQTN7ypOBs}CSj?$uY&U%q|~(T?&9ceZyjmf?QK zt{$NuT-jS|kr#itNCj9(v@<5m>TcqLW)lwT?#`Cf(~^3n6a?Jurf96>G|9Z`t~Stp z8a}x9M->nE1BE}=fZlVT0o$9)Qs=vj-kv)}@4CB#-om&lIqnD{Yern;N6EXVL*u7t z%D~Fe&1Umb-Mg`i3eeob*j?sb^KOv9 znk4*1&}jR0HLoDZ<`tyTyn?i)>Q{-n`zQ@FWKwtckc2|M{|kEg)fKAy+s%10XbwB##6LAf^E8Pz^^tEff2TRq!Gehz^Vz$i#2Ee>^tJnRd%l@5S+VKb~G2x zUfl%|_n9;?F21Q8wPGftYKmwo$j39b1tMm z)+D%&0u#s!efMb+1O}7YcTf>#T>LAU23OhcRta7wm0C$oveKgnDA605ewbvss|AhI z9>1q7##fil(xQl|Xr7Po#4e+|9oAB*DoQHpOebOX*Mlg8QE-8FyAqR;#a%?Dbcj|& zC0?_uv5Pgs{rP_+I8Sj=U?*2H{43kU7teV>5V`+!UDURik5esbJ=F&$ra0<7VDs6q`yX$bB?xSMr&Gyj`{^L3+!QjE$8YN_A{J`|Q|+ znak6{QhP1v=ssesot_WzW02YpC5}6aeyX+b-%4EZX_-X(v+Tjg8CQOKB|-7GO5Op9 zgO58;@ux$4b=SQd!V}U@ErjF#Lt75v34tGAZ4ae^Z#m}PX)G#kcNU z`-y9~?q|Ei!+s8GeBIB0hUgUc+&wRXhoj(GU+F)lyPW z_*+VmET1np<{6eOJEfq{Dyd}U&7?!OK1*gy$7IPf|ii%7Yg+2j3tYv55o^0UB%8pIoN>(%fUwwkCarMaMYWYe@X;IckDdaV!h77gD zTBcfv6vUqs#%7?ThPw#1xP#HKmS|t32e`aG0EyP7hzgK>cz&EOP{a0dX^*=?Z{hJ? zQo^Uc#^5Xa$1u>EOs9oBP7>_ZepL!C=T9g=_9}kW_Y3ERVG fcwQ_ucpIKH1vQR#{OYIC;eH3CX=*AwgYm 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 F{5Q-(GhqM# literal 16464 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 aY|K?Tx66j~xR>)kf0wdY;Bs(@;{O0o-c{xR From b5b08abb8a61e03d09ad6eeb80ed365dbf4b5c30 Mon Sep 17 00:00:00 2001 From: JanEhehalt Date: Mon, 21 Nov 2022 02:29:01 -0800 Subject: [PATCH 2/4] README update --- README.md | 12 ++++++++++++ assets/grass.png | Bin 0 -> 1505 bytes assets/tower.png | Bin 0 -> 1364 bytes main.c | 2 ++ 4 files changed, 14 insertions(+) create mode 100644 assets/grass.png create mode 100644 assets/tower.png diff --git a/README.md b/README.md index 9be82e5..aa2ec09 100644 --- a/README.md +++ b/README.md @@ -1 +1,13 @@ # Aufbauspiel jaja + +[[_TOC_]] + +## Ackermatch gegen die Natur? + +KI Gegner ist erstmal zu aufwändig, ein wenig Ackern muss man aber immer! + +Fantasy Welt oder Realistisch? + +## Isometrie in RayLib +[Projection Orthogonal -> Isometric](https://gamedevelopment.tutsplus.com/tutorials/creating-isometric-worlds-a-primer-for-game-developers--gamedev-6511) + diff --git a/assets/grass.png b/assets/grass.png new file mode 100644 index 0000000000000000000000000000000000000000..adae75128f5fc22e8395eaaae336d819003ab1f3 GIT binary patch literal 1505 zcmV<71s?i|P)EX>4Tx04R}tkv&MmKpe$iTcuJf4pu1QkfAzR5ET(zvob2qB7TiJAJWD5l^!zV6}U>s_2@d7t}p^eB0g0X~6vhUtbyyiPp1 zY3ZEzi6g8eDa7Z*BL-cN_>t?f%Ws^E4*Pj##K@%Qh$F;8v5n<6W+g)85ZKSYNVJ*(|*FkKj8R9a>?Y{ z03*jdDo`Oge(*o|-K|*|A9It!383@Ewm*h|;4aXp+4lFbZ8uJUz%y{AwfvPjF!f1# zt)<0|fZlE3;<}~Dd%)!m5Pi}mLvo}5O@E;Pyr0oG<$%6hAhhcC*4)SG1CXJvQa8ZC zAuwE|>@|;fceVHS@0n(QKc{4Jyz<}QO8@`>24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j&YE3K}GxXJ20c00Z4gL_t(o!|j(}Xj@er$3G`^ zP3;m}Y0{gbGx!jU6bVi`aTI+wEfmx~2)<2UHVA?aVFXu1d~hHWpZ2haVIS6~!ro+z z4!Y7&DWp=#7MV-uNYjS&Us}35+vCIOIXO4!vSxxq*m=1*zjJcFpWpBIJr}N!Qt~v1 zkEcAI0Xzfv{{oEWg%lsXApL0}k6jY-KLa>+Nl1TM$n)2sHNIiu{<-Ob*;^(7+x9q#=OL2*4eW z0!p}6)UL?S=Qd32Ag%ELoSs%2{b^+|UD`|zT8Hu^VqVcq&I_iY8zs^ZVB)sgn231| zW)EHBR8r0RzRY{(8d~qOLG4z007mm_L6=dFizmE&&E%?Jb{p)u-rF}=ZAB`nDrmRG zpBD1;w2&>|?TpB~8&E96&SVcq2iMFWb-X3yl1jqOy|``*sC73Rq~vn}wYOM?NS9gz z*xuWBZz{;qcU({0cV^ZB;HUc$52f8}cRX5`u^x82bQ|1k(EQhiwcGmXFAlGM8&)kC zxa?3UN^^jI>d`usufpsde(^*-h=%MNe6)WuIq3cIFw3jE$^$))0AQ&Efo~iJE<407 zMCuNAv(@{roo#1Vdn;;RSVLoBhUeNC8VeJPv=i=B{`Y0(l_~o^9|54p5oG2iXJ#Ez zN!6N0_rJE}cD3{v8VduETii0Sscc1gW*`wb3$Qjf0YGIF4!5gK(OW?ZMag@mAot&@ zFmokHOUN~%C7&|quPd&pRI#l3JN?kd2iH32Ej~xM)5q4fq$_ZUg(LlRtS`_NIHUkR z?hl@=Y^u!dC%~P&g1M82H~$RK_f^^41P!7cZr_N%Z$9AN&F8Dty1QuvJJuHr5P%qY z-;vq_-J$BU#}O2Y677*fvHJe#aRjGcS|kyJneU?zFEc#X<|%u)(`Ssf-`u>2mP+b} z7VQr0QO`@3N=jIZYZ&bjfRpXp49~S0Q|YJfaryP6nd`OO;+6the~6G$a_a4f)DTN0 z2z~ekzKL_5j5WkxuYJbLw=S6Y)f+qH7PpMEmsfZ9&DM@-GtRD6gs?wMY!H1L?6%ax zER|q+b(e)B{k(E-(j%myv|udK?h)3SV!tmV8>CiL3nzM2Z2phky6ld}1EvyoJ8a>G z0Q-T|n$xa;oq6`fH;AwNR#)mrX^4Y-8`f4N`pF10KYUGh2*xKX9FGT>%2qrjf1Ger z0F7F6^~R1_Z$|iu0BS)1W4LC8{}q4@^83OAt`%0qlb-Ppj?zD5h{?t#00000NkvXX Hu0mjfWP#Pw literal 0 HcmV?d00001 diff --git a/assets/tower.png b/assets/tower.png new file mode 100644 index 0000000000000000000000000000000000000000..1fa634b691eab49633f40555343b0299c19a6978 GIT binary patch literal 1364 zcmV-a1*`grP)EX>4Tx04R}tkv&MmKpe$iTcuJf4pu1QkfAzR5ET(zvob2qB7TiJAJWD5l^!zV6}U>s_2@d7t}p^eB0g0X~6vhUtbyyiPp1 zY3ZEzi6g8eDa7Z*BL-cN_>t?f%Ws^E4*Pj##K@%Qh$F;8v5n<6W+g)85ZKSYNVJ*(|*FkKj8R9a>?Y{ z03*jdDo`Oge(*o|-K|*|A9It!383@Ewm*h|;4aXp+4lFbZ8uJUz%y{AwfvPjF!f1# zt)<0|fZlE3;<}~Dd%)!m5Pi}mLvo}5O@E;Pyr0oG<$%6hAhhcC*4)SG1CXJvQa8ZC zAuwE|>@|;fceVHS@0n(QKc{4Jyz<}QO8@`>24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j&YE3L6Q*qcUp%00U4-L_t(o!@XBOXcJKw|Ggu1 zGD%zGT~2HyPC^u^AjQ(fMXcRL2L~NGb?R=d&JGTRq7Eu9br8A~hZY?yky5A>+hXZZ zh+;1Nd%1=}mwOJ$yL|WZ?k*R>4@w{RF8BL=zwh^b?~ZZK(P_MXWb$%_V`9!?ojybB z^oI+R1_ywhJ>c0$mj71*3zG)lE;WDpFC=0USew>8@N$Ji&ouWsA)&?1+^R6-b1neD zG?-5X02mvHM?#AOo~@T1Q~?33XPPA9D8bt40%14-p3k``F8htYv*#xP08>lR-4RJZ z7*5D8D?sI^A-oaQqM-!Vrgd&rm=9D$xx!%@%p+kM46EzBr5sU81QMXK%bC;csDK}o2}p;5yH z)m(PHFreHC;x7nX?9*YzIOjgu<;tJ8q^^PSzcA|t1_n7 z1ds|ah?v;dWme4amahb8f>#pz6p=hvJVgA@ol9TnZccI|p{?CBlD*A}M10+A>QS`xn!;WI&G zE+Qd-8{jx~YZBYPj__msH*RYmd?S};Dk~Cn5COoZIqa=_?Kx~&#~8eH8XKh(B&L=u zj16SHI$mh3t`yGW`TIT`RS$9F<_K0@;3{S!=f9o-zIF{G)t!dZRmJ-EMZj7_p?}DC zfAMDxE7e-P4X2hY@j~elpz-a?T%E+(dsuCZ2B)j)?F+C}cN&{^{kmf}z@^x-jzNTz#mrZ*KzDAk=- zt^pu-u>b&=pMAsHekB_npWx@r6#kSQi2ow?4;-wm6me8N^s>8rZ4i!KFN08mu2tY| zy%mp+PjCt>l-NITTJDtzgaOC;E|AHnz$t-`Z(p?iwaotI^L%U|i;dC=K9>(We#T$4 WAuo;1t0zYQ0000 Date: Mon, 21 Nov 2022 03:48:24 -0800 Subject: [PATCH 3/4] Refactor, big with movement --- .vscode/settings.json | 5 ++ inputHandling.h | 72 +++++++++++++++++++++++++++ main.c | 112 ++++++++++-------------------------------- main.o | Bin 0 -> 6816 bytes spiel | Bin 17568 -> 17720 bytes sprite.h | 20 +++++--- 6 files changed, 118 insertions(+), 91 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 inputHandling.h create mode 100644 main.o diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..23106ef --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "inputhandling.h": "c" + } +} \ No newline at end of file diff --git a/inputHandling.h b/inputHandling.h new file mode 100644 index 0000000..fdd3359 --- /dev/null +++ b/inputHandling.h @@ -0,0 +1,72 @@ +struct InputHandler{ + int pressed; + Vector2 rectStart; + int clicked; + Vector2 cursorPos; +} InputHandler; + +//TODO: Macht es Sinn ein einzelnes "Game" struct zu haben, das alle möglichen Pointer hat zu allen arrays, camera, textures etc? +// Man hat einen Übergabeparameter mit dem man dann alles verändern kann, man muss nicht alles was man verändern will einzeln übergeben + +/* + cursor.x = GetMousePosition().x - texture.width / 2; + cursor.y = GetMousePosition().y - texture.height / 2; +*/ + +void mouseInput(struct InputHandler *inputHandler, struct Sprite *sprites, int *spriteAmount, Texture2D *texture, Camera2D *camera){ + + inputHandler->cursorPos.x = GetMousePosition().x; + inputHandler->cursorPos.y = GetMousePosition().y; + + if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT)){ + if(inputHandler->pressed == 0){ + inputHandler->rectStart.x = GetMousePosition().x; + inputHandler->rectStart.y = GetMousePosition().y; + inputHandler->pressed = 1; + } + } + + if(inputHandler->pressed){ + float width = GetMousePosition().x - inputHandler->rectStart.x; + float height = GetMousePosition().y - inputHandler->rectStart.y; + if(width + height > 1){ + //TODO: Fallunterscheidung für negative width / height? + // Auslagern in eigene Funktion + DrawRectangleLines(inputHandler->rectStart.x, inputHandler->rectStart.y, width, height, GREEN); + } + } + + if(IsMouseButtonReleased(MOUSE_BUTTON_LEFT)){ + inputHandler->pressed = 0; + float width = GetMousePosition().x - inputHandler->rectStart.x; + float height = GetMousePosition().y - inputHandler->rectStart.y; + if(width + height <= 1){ + 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->destX = inputHandler->cursorPos.x + (*camera).target.x - (texture->width)/2; + sprites->destY = inputHandler->cursorPos.y + (*camera).target.y - (texture->height)/2; + } + +} + + +void keyboardInput(struct InputHandler *inputHandler, Camera2D *camera){ + if(IsKeyDown(KEY_W)){ + (*camera).target.y -= 100.0f * GetFrameTime(); + } + if(IsKeyDown(KEY_S)){ + (*camera).target.y += 100.0f * GetFrameTime(); + } + if(IsKeyDown(KEY_D)){ + (*camera).target.x += 100.0f * GetFrameTime(); + } + if(IsKeyDown(KEY_A)){ + (*camera).target.x -= 100.0f * GetFrameTime(); + } +} \ No newline at end of file diff --git a/main.c b/main.c index b5fbae1..121e1d3 100644 --- a/main.c +++ b/main.c @@ -1,42 +1,33 @@ #include "raylib.h" #include "stdio.h" #include "sprite.h" +#include "inputHandling.h" #include "raymath.h" int main(){ - - InitWindow(800, 450, "basic window"); Texture2D texture; struct Sprite sprites[100]; - int destX = 0; - int destY = 0; - int clicked = 0; - - int pressed = 0; - Vector2 rectStart = {0,0}; - texture = LoadTexture("assets/amulet.png"); - int j = 0; - struct Sprite cursor = {&texture, 450, 225}; + int spriteAmount = 0; + struct Sprite cursorSprite = {&texture, 450, 225}; + + struct InputHandler inputHandler; Camera2D camera = { 0 }; camera.target = (Vector2){400, 225}; camera.rotation = 0.0f; camera.zoom = 1.0f; - addSprite(sprites, &j, &texture, cursor.x + camera.target.x, cursor.y + camera.target.y); - - + addSprite(sprites, &spriteAmount, &texture, 400, 225); SetTargetFPS(60); while(!WindowShouldClose()){ - BeginDrawing(); ClearBackground(RAYWHITE); @@ -44,90 +35,41 @@ int main(){ BeginMode2D(camera); int i; int length = sizeof(sprites)/sizeof(sprites[0]); - for(i=0; i < j; i++){ - DrawTexture(*sprites[i].texture, sprites[i].x, sprites[i].y, WHITE); + for(i=0; i < spriteAmount; i++){ + DrawSprite(&sprites[i]); } EndMode2D(); - DrawTexture(*cursor.texture, cursor.x, cursor.y, WHITE); - - cursor.x = GetMousePosition().x - texture.width / 2; - cursor.y = GetMousePosition().y - texture.height / 2; - - /* - if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)){ - printf("Klick\n"); - addSprite(sprites, &j, &texture, cursor.x + camera.target.x, cursor.y + camera.target.y); - } - */ + // Moving cursor Sprite to Mouse Pos and drawing it + cursorSprite.x = inputHandler.cursorPos.x - texture.width / 2; + cursorSprite.y = inputHandler.cursorPos.y - texture.height / 2; + DrawSprite(&cursorSprite); - - - if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT)){ - if(pressed == 0){ - rectStart.x = GetMousePosition().x; - rectStart.y = GetMousePosition().y; - pressed = 1; - } - } + // User Input Handling + mouseInput(&inputHandler, sprites, &spriteAmount, &texture, &camera); + keyboardInput(&inputHandler, &camera); - if(pressed){ - float width = GetMousePosition().x - rectStart.x; - float height = GetMousePosition().y - rectStart.y; - if(width + height > 1){ - //TODO: Fallunterscheidung für negative width / height? - // Auslagern in eigene Funktion - DrawRectangleLines(rectStart.x, rectStart.y, width, height, GREEN); - } - } + // Sprites move towards their destination + for(i=0; i < spriteAmount; i++){ + if(sprites[i].clicked){ + Vector2 movement = {sprites[i].destX - sprites->x, sprites[i].destY - sprites->y}; + if(Vector2Length(movement) < 10.0f){ + inputHandler.clicked = false; + sprites->clicked = false; + } - if(IsMouseButtonReleased(MOUSE_BUTTON_LEFT)){ - pressed = 0; - float width = GetMousePosition().x - rectStart.x; - float height = GetMousePosition().y - rectStart.y; - if(width + height <= 1){ - printf("Klick\n"); - addSprite(sprites, &j, &texture, cursor.x + camera.target.x, cursor.y + camera.target.y); + movement = Vector2Normalize(movement); + movement = Vector2Scale(movement, 10); + sprites->x += movement.x; + sprites->y += movement.y; } } - if(IsMouseButtonPressed(MOUSE_BUTTON_RIGHT)){ - clicked = 1; - destX = cursor.x + camera.target.x; - destY = cursor.y + camera.target.y; - } - - if(IsKeyDown(KEY_W)){ - camera.target.y -= 100.0f * GetFrameTime(); - } - if(IsKeyDown(KEY_S)){ - camera.target.y += 100.0f * GetFrameTime(); - } - if(IsKeyDown(KEY_D)){ - camera.target.x += 100.0f * GetFrameTime(); - } - if(IsKeyDown(KEY_A)){ - camera.target.x -= 100.0f * GetFrameTime(); - } - - if(clicked){ - Vector2 movement = {destX - sprites->x, destY - sprites->y}; - - if(Vector2Length(movement) < 10.0f){ - clicked = false; - } - - movement = Vector2Normalize(movement); - movement = Vector2Scale(movement, 10); - sprites->x += movement.x; - sprites->y += movement.y; - } EndDrawing(); - } CloseWindow(); diff --git a/main.o b/main.o new file mode 100644 index 0000000000000000000000000000000000000000..0fbeb877df53b53902dd264fb64c186344f7f126 GIT binary patch literal 6816 zcmbtYeQaA-6~B(tHVik!EXJtttHqU0m5l&8xt!Qx^_JYF1Sg zF0Cn#25+n>y8<=N@)eYOEP1xag%i_Dvme74i}-WXBXj3}d`*Ph2Qlw~n2VQ6KPUmc z^yW@NN{|!$(#$|{P4TvR*4mYZoZxEKl!kR=Xl6GU*H{kzKr?sI%%^LpSxe26HJM(o zdBSU6Z8u+I>(lA$zVkHm)cWR?DXhE<)mnmT6{y*r>oSA$%wUu%&*nyzI4m1n#_YUh zm@cmSWKrD$rpV+oIlTidGQ`NGA1|B8>eXe~?g>l0oM(G4yeKo@7tTdY1uG_Rpn6Ri zDk$}f5MOZR4zC+(P_Yd)*hy~?wrddg)Qe>%%KpWtPh2MRH?aJ9b9rB>L`ooOBIY%7 zneBuL`{hN8h61;5SQ0_teyj=xB5KIBn9F9Kg(DY6nfWU$hKhMy)vDKjOsTlFlx|^2 zMWr4>8|+4A8@h+Alovh^6ZzorFlil3=0P*y0h>i&a+yGld3EuR_q&#UwhkvAd<{Wa z@u1=Md#P7gK)S-Bx{?J{eE<$k8mqt5V!~bIrN9f#5}L^=Gcy<%mLlLm9Ch=7J$(9K zEQp5ebfPnib8DFiv%2$eG3aNW+PIEznY^NdEIe6`Sbvy>4lA%Dv!;9s^IPR59KsR; z13h4&Z>vVEirlDuOGcvf%&2CeWvfQz@M<=7p6723LN;NVsoqx)zNi^2Hs@&eZkUrF zU4_k9@VWV((X8?EyQLD%K88ZEr!-@snc0gdG>sKD%obtD7?wB5V9WelkkXa&P$*H5g~tJ5C*_^5Rq@&7+w-?=o#nRNSgM^BgxDnL_=@T#kaRn7j$#$&P_8_ zSB91UFk_y1owa7!zyvD#j=vJ!qatm!vp$w&hy3;pWR`> zT0YzrT%QXeH0Gr2R#qwp?qx>UfbpPO$#}C?j9vrd6Eegq?7s4aSO3Ki6^nj))dk(y z=>I1N=P`EpOeluwNA6=yLEmN_LH6m;*VEhCA0#Id(I`0@D$+jwUDE2ZAX0d10(6Up7tH~AM`gh zHm4ca{Oo}yf73yK^CK2cs=N7vb2;+pch?)B`b!E1RR z;P@b2#-CuV_rM$c*V0b*wh#w+kt@_)?%Ujm%P&)%T?3v(HR*YNR< zj=o_3aDPi{S8$k2r1cbOPpXq#3#a|sl%7s%q%#gus>Z`nElFaDbV_3gIjZU1$n_*r z5j~QKlgNvO%N<-9X> zOgqz_n2h5x9Z5B&^+#eFO9ujq=ucV=zAK@IMVx(_-mfOdK)t7rv}$9KIA#%nrr!oj zBwN+c>9J%Y9S>W=?nGES&`yH!FrS@(C==$Q8f~UbBT1p8t}cry4*kD^9t$f9LMX0 zFJOUxo8v-XbkgrR=KaQtgQ;IB%!?EhB|xR)0e#n_s}x;`5&-Zc9-Zr`t$ zB^=)=BA!mZ+#FG@Im%ZWHINcaaOJSX9MCH&VC ze!qm*@lPmR7i%f}`z72b;TZ{+^{+_yE=m6l3BO0eC;7#}bw4EG=Qu9v*$y(K?@0O& z059Ua?x6n@N&mx=eiQ!$#C0E(@W&*4pM(b`{2>WHDd7)GxDVz?7(YIO0(>HH@!c1; z;o>{)B^xfjvo6~3Mt&}dKXoRit0OS#NoyPzv!oVP{W`qFi9f9BD)En`QpBH3SWGAp zi)nF?#S^;bhreMO*^7$vWAU_qBAJ-blKL62K~LKF@F>2Ac_jbe-~)4fCGg|9;Vi&s z0h+P~)>E-0!XDo>NR`$` uyao>pP>ye`2j&=(-5!0~_Z}cp;4h{x+X`l5;cvRi_7{2lIy#fcZvStn&&UD* literal 0 HcmV?d00001 diff --git a/spiel b/spiel index a6cd31411f587659e48f07fde5415fbf165dd4dc..a5f0a48b906b2862432c9ee3b799f6569c564ec4 100755 GIT binary patch delta 3744 zcma)9e{d969e;b5BNv*mcW{sdu(?!zq%;tI6B=_xA3jru09pbeA~VD|;6GJ?C;Blh0-0Rm!H;IZUk1AwH+9R@%ieim)Fd1WeNJeK#61eO1C zi3Kw{ls56=jD^ZZ@%D_Wydyjs8jUi3oF_+IqR2N_afx-lBCOkdpAGX^<&*a?rq91+ z81Lo+J49GMuA}psGe(=H}TG^1zh`dHKHJurD4(S}ZSrJOZcvm9sW>B6$ zRz}@6sFoxVU}!{t*%l$IVR#&uL(#_NE}^EOk&N0HqFtUB?N!T?Pi%>^{!7$>l$M@v z7|cKqmNM;iEiId&p=BP@C>^x)ONZft_Y z`XL&~g;EkoA{uaOXOiy}DMM$+GU_52+lI>0w9yE7xX0E&!nQ`%-82wmeHfF|M!^mR zwK0xjY@=dOWA(L&q6>ZPqR6PHO2$ZyQVV~2ZnmDU8^?ox zY5Vx8#F_HoWFYLe(SZgE`D-%d)`j}_uz`!bi`k52)UA}@C~zv`HYy?zZyHWXh~_>)?<19abU z1s%KEh#7C<(X9C;)DkVEFH7*)%;71F{q79w`-LVARM#lmZW!?GU$^_N~su(!5Ltu1LRw={@N_`Mch3Ve@xEkV{vo_HU)Om8cJ z^H{HpCDuoopd33u4EA4ui(hx6R8*2fD9M0#9Z34Qn}%`a1$>?K2XBf8XUz}q0)eh= zqmQf`edOQhqk#1isxR*8ROB2?(^o1L8M4at?gGnIw3kSH*PnRuqKhlIxKsM`@Yg9t zm8dN6T8SKeQ+L4|GKhF!KN`72UAfD79j{}=C*`PXcNLT6jma*M-+9#f*lQF#kHyTg z^qOVqqp~1m22f+3|NSH#j`f=2lEbz0WTzQ7!|hbBl%tGMnSuFb<*|*UTp8qx+jGHS z^hKEVzeGA9f`sXfJqF+A73PhkkrLSqBL?}o9yfY)f=2TMjlWTuqf!x{oqY-YnH#c} zc_TOrYT4iuzEmU^@-$niNV~PWLt_{k@{@(hr2xPT6GU)%&%=so_a~F2ZinuXT6EXa zG@9vnVrGz@2nA^Kh<29=P@j3_KNzge_pwZao6ga_3NGHrW_*72Ux3qij7R|Tbay|Z!xd$B2`Ln#6>K?7x9AaBqnw#0@n;+k`SGfKDu(aFp5MzTI7`sr# z*iO8Ic>O_TjY&$gPczSc2Mqs;`{!2g(Waj24z;A?IAD^?@GK&#aaKt!uC;^B(nAR09*0y z7vAFh@G0oVi4&UU`L?4fZ;Iok+-x_(2kGZ{>9#lmIL;4sIvveYM9K_-^)zH=ViG3G zIJ2EnXfDX_DeT^oyP6fx zI%@9|!z-3REN5lQGJ%WD!Ek^kRtesm@G%|42MU1Tk>LaSM9<3n8n4A2`ix{U+^+H| zw&+)8n7Ax1wgvD))|f??4FmlF;myidR*MU(@|BR>H^{X~u7_zYoI^GpUY53enU)!g zNEsn|Tm^FX8d)j)3#7g9#r&om6_p-c+L|Z1vsoY@iM9|Mle*IprH2(_P))AA7KsC^ z^OgJMS|Lth-yrw9#M#yPg)PwXItrP4lGag@Db&EF%y(GP@3xGdkldeI+!tsr@yKBV z{H3&iM(kXZue>EC-?1cT&6I*njvTf(M9-QcZ+pO`+Uq@{xIAC@%L|kR;yu_{Ot=!D zwXhb$>SeRp4ok;sFxx7*d%&f5XQ2%A$f*R}OWb%zxl_s8yZi80TXr67s@b={tu_AC z+8-!6)dzPT+O+@R&=Ma9&wx3qm@x8#btipE^I<2&~?HSazcf3f1QA`*`5xW975 zsr*?e!Ll5?vuUw5_z33mSg_1H`JZ2tNP^n$rt}ps8xOlPX delta 3252 zcmai1du$xV8J|6$pX9oC*zVcEiPwREo1U=~YWeR7-1?88ki=A`#cGI5<0b_G zl>qe|-EHgba*D%X)k&p_NJvnLwxK6i783Xj)aTF#Nn5Hkm8w{!?S`hp#!We1+Wx+o zJ?E50u+q$YkKgy2`DV_Z`GNL~rA;*ZE_5H;^w-Lc0Fz&b2x+ZV3!35+);P!iek$IxzgdQxbVvMH) zM=NRR8PUYe)nnTI;<@Tuv>x$hbzk5Rw|6Yrj8E~o3x3g9)1di9cTFSap_&^L|5^j9 zC$3}6x$zU%ojCp4ioX8CJ>2^HZhquaT{&a>x$WQBjAXdA!`YnW>Dt{uzw#<-nKepa z*9E(rS@(hKQpP#6VU;pgshd3Nfc|cFMGu+1;3b^^69>c7=2D)PjuLq1R?eA*TW%|< zJ((w^W!^_nYjOmOZ8FT3`EATOvj#JThaZJ8cR{kE2TOm8{h^S99zW;tL*RKXVU86n zbLRLJa>66Y!_%Gxsfi!+_$R>^3L-q|Mm^oriceD%$W6ko=!0`BdL$1%?PX)$p`1#^ z0#8rM0kgt}XGFIC4NO3APf~BiU<0xPkx{$zKz&3jl6cQ2H2k-1-N%HE!Qk!L2fG z?X9q5L2GBwo}?t=*1YrHhpM2YOh~hF@Cn!5DmnehHdNu90%YF21OuR2LqZl|e#J~J(HlAyeXyu6$Yhyz^zZuWqFXu&r3!;AIm+&hih znX@?fO^7nIpf{rrR7X0=0-n$14P`U(DK?btES;Y77^qbC;l5?K)cclK~dgqV4dF-Ks@0kPDpZFglv~= z&?F0Vzv=OT2;LRFb?(t`&YN#z2ieTqvi*og`z=D^%Jyqx-eHl3{3{2M1)`PH$eF~I zz>y`QRl1RE+?L*Pd18pKcC8##Dyygdh(cBUAeh4-{Jt&t%0r5rr3nuzK{$$8z+3KVG*25V&svr&`F8QcsBhftz6p6+qFeKonl37L-P+6+)&b z+wA2QG%2rwlJa$0FJpQMQ*uc|*PFj2;a4wRV;rH)7 zJUS|B4da2Yj6U#dQCbA5n3_(H7N^Q`Au%dbV~_ONzdT7DjuA-0woy~?Ig$~zM27Y_m%5+^a=KyzseYTF=Q^i^y9 z#MkcuAM(|+pl4r*JS?=%uy#md9tVc%KGmSK_j@2)`kj*VPsB0crzL%sX0g;+5o){2 z>p!JFPjkHwf7b@F%U4IP6iv~vFrsy|XVGwd2XGX9g4zn7>=mrrNSnD3EzvT|TPHQq zQ(i8ny0(b7y7q}cc_6d1`=FMY>A6s%Z4}32t(AqnZ5C%^ccKI8x3`A=@BaaD52RBD z#bKkJI$D&HHQ~WvJSvB9KxV4%%-?RRI DLoaSw diff --git a/sprite.h b/sprite.h index bf2bf58..48db6cf 100644 --- a/sprite.h +++ b/sprite.h @@ -2,16 +2,24 @@ struct Sprite{ Texture2D *texture; float x; float y; + float destX; + float destY; + int clicked; } Sprite; -void addSprite(struct Sprite *cursors, int *j, Texture2D *texture, int x, int y){ - if(*j < 100){ - (cursors + *j) -> texture = texture; - (cursors + *j) -> x = x; - (cursors + *j) -> y = y; - (*j)++; +void addSprite(struct Sprite *sprites, int *spriteAmount, Texture2D *texture, int x, int y){ + if(*spriteAmount < 100){ + (sprites + *spriteAmount) -> texture = texture; + (sprites + *spriteAmount) -> x = x; + (sprites + *spriteAmount) -> y = y; + (*spriteAmount)++; + printf("SPRITE\n"); } else{ printf("Voll\n"); } +} + +void DrawSprite(struct Sprite *sprite){ + DrawTexture(*sprite->texture, sprite->x, sprite->y, WHITE); } \ No newline at end of file From d573eba6d4e196d6e7a2613fc3843a6f881278e6 Mon Sep 17 00:00:00 2001 From: JanEhehalt Date: Mon, 21 Nov 2022 03:54:56 -0800 Subject: [PATCH 4/4] README update --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index aa2ec09..ef20ff1 100644 --- a/README.md +++ b/README.md @@ -11,3 +11,8 @@ Fantasy Welt oder Realistisch? ## Isometrie in RayLib [Projection Orthogonal -> Isometric](https://gamedevelopment.tutsplus.com/tutorials/creating-isometric-worlds-a-primer-for-game-developers--gamedev-6511) +## TODO + +- Bug with movement of sprite +- Drawn Rectangle problems with negative width/height +- Selecting Sprites for moving all selected to the same destination \ No newline at end of file