From d40c51a4db522cb1b9909933e01e98167164c54f Mon Sep 17 00:00:00 2001 From: Mark B Date: Sun, 29 May 2022 12:02:30 -0400 Subject: [PATCH 1/2] added dash mechanic --- asset-src/gfx/player.piskel | 1 + assets/gfx/player.png | Bin 609 -> 969 bytes src/Main.c | 30 ++++++++++++++++++++---------- 3 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 asset-src/gfx/player.piskel diff --git a/asset-src/gfx/player.piskel b/asset-src/gfx/player.piskel new file mode 100644 index 0000000..5fc2a22 --- /dev/null +++ b/asset-src/gfx/player.piskel @@ -0,0 +1 @@ +{"modelVersion":2,"piskel":{"name":"birbis3","description":"","fps":1,"height":70,"width":70,"layers":["{\"name\":\"Layer 1\",\"opacity\":1,\"frameCount\":3,\"chunks\":[{\"layout\":[[0],[1],[2]],\"base64PNG\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAABGCAYAAAC5bsoXAAADj0lEQVR4nO2YTW7jMAxGtexter25UA4zq56nwACeRdDCcWRbPxRJie8BAgZtJxLJ70VxUgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABW2lDb364ZnGenn3wD6mEtSsNJOFESyYvvcZlungdm+X5dEexyIUipSysh0/J1ET0RwkKPsWq4gROoWKfdziZ50oyPEcyESIhWv/M3TJdKf7d92t9oaqpSTff2IhEgtIh3X4ZYqYnqRWmVqxoEYiNQv0plMbz2yxCIvNTJNVxwiDRHp6iOduUiWmSmVadoCEWn4jZTeRdPHQWZyvXhmBpFuEcmAtSQCIqXXv9HFeU5kJDIuFJHkREp5aWxFcpqT108uiIRINyLtf17bE5Fv7Zzm5E0kERyIgUgyH+0ke9ItkuOcIFLl+rul7Kpqj7UkwksmNHdNs5996Rtuay7cFo1Ii4jkYO6tIvXJ5KBgRFpEJAczl8hImOIRqX3JvQPPn6OzfLT1xUFBiGQnkphMDuYtKVJ9XxwUhEi2IuV6UvWNnYNZS0tUnxUHRQ1bAlgHX0ukY2iKRbKe8WCRymVyUBQi+RCp+uOM9XwRCZGsVkopiYhkPVuBbCASInWJdBWiEJnZwTMSInWJdBaiEJk5gEiI1CVSLkQh8nICX38jUrNI4bJyAyIh0liRrGfpKBNrNwiREAmR/DbNOvhuRHKYlcfXx/b4+kCkkiZVNwqRxolUyO/cFtmnm5cwB9p7j3XwZxNJa25e8lEEIiFSLdxGGRBpDZH2vRzZT82ZechGMdFF8nAGCY4ijapHW6Jp5oJI9meQICdSrqaeOrmNLkAk+zNIUSJTa53afZpuJohkfwZJrmTqqVO7R9PNJLJIWg/oFpwJ1VKn1W001UyiiqT1cG6JhEgW/ZlyHl7CbLn3dEMrRFKkUWf0smc3XsJste+UQ6ugp1bL22i6maws0tm3VlEk+qFXpJFn87CnCBFEOn5rFUmiPaU1W/Vo6tlEEUnieWFmSmu26NESs4kq0oj9PFJae+5vNPplta84EUUasZdXSuq/+v2ovtWcSXLfYawsUm6faQYjQO1tVPI6WmeS3ncolu/YmvtGvJWka5Z4nZbzuJ/X1fODxsG1944m04h6pURq+T9u5xVNpNyeo/bxwEq1uq7h7sFS+2aw2HvEHl6IUqcZNQ+fIwZx9boatxMBAxGiiwQgQmlILUQavTfAFf8BsIa/63/h/PcAAAAASUVORK5CYII=\"}]}"],"hiddenFrames":[null]}} \ No newline at end of file diff --git a/assets/gfx/player.png b/assets/gfx/player.png index f1709a8318f39859579a60daf3b44a1e2041491d..004e5fea736a7f97858d70e65c11b6738b6cd662 100644 GIT binary patch literal 969 zcmV;)12+7LP)W~b3`Vu=ZF;@AP!2Pzo~OV7o<-2Yab#OR6iJEi0RjeXClbl;MR8IB0000000000 z00000000000000000000000%Xls5P4hG!Y+=idPOm`hTy(oPgavSRz(W?QF$*}h+w zM0*^FQYuo)$aMUjL{CI;kfZEct{_C}7Ag00iJo+$BgAtd5+W6^{LRxP(x2_$cDLFZ zs+5y`{fLA}Eg~J);g%|5dXZXXYQ}*Wh}19AnM`jzvcw`UH8M?C93l-7>FOh$xk#3o zDV1s30ugEWjg;O+)5k$(a=mzF29a(N$$+&a0wSf?ztP2cPGlr9E)w7L7=Yh~!}Its?cwQhi?>6og2&BISBg^^Ki_SxZY)pA`p14O;?O2VYC1V`z#+vYzo^ zk;-LqP!uBh5UKj(jP-mG36ZQ;N-2qmWIbDfY#?68Hwux)iB!n%+!ooVo0l*L+Ix?6@MjZAYi?fhQ3N6(QZ3v@84zg=k@meD z*-y=xdB{dF(M9rb1__QLjjBgmqG{%WNcLxtASY6;rk*;vjV?eW`!h&UB2#Of+I^aC zCWvHz21%}D>Zwz^N7KzDvPfDF=oXv_)l#R`Z8X(PqKc&TaBhi&NEZE>avom7Y`OPz zLn}m5q)}(|vS&A5!fdtgltZhar&i0`Xu6rKEYjJxR#7DSp;x4lXY;V92oXd&erpv; zqCKTGTlHw_*+daZ;(1|aN^7?0(Gs(XD$2hz)H2cuHo*%Qu}7G*n7ktUWihs88r`|BL;Exx*E3= r0Rs`Div%D-X-F+Z8of8b75@RShQI57;r#ai0000@AaB*I_wz^+-T6OjZ1X@!^p6#_*A~o0fuFK zXX?uG=iZb3$j&gM&cHom-nSL?AbB_TGdI^O0TsOBRX)Fi$HaYZ&ttKO*c^D`cY}N5O83XLD;hYNm+|#}U&xg9qN4+-%QxZN1t8@LbPNOY z3}*vXlLp2!nlreqg&rg@GS3iLJmEVdGtlsjGy2zW|Ig^7VxXSOms>C|`+23jK|TxzclVy~7mX_)yy&cxbz z@uxZ3&63~R7dg8ZFf88ittY|d)&F%nYXX=4-gEbsagrco&&gfJ&4Pv%*Jd7+`8$0B z*R=f%#UFoZC!J*WIsDbPZvK6Zdj`GN*|`#Ct=q38CU~G^{bnJFV4cP0B~Nx~?@Mh< zl-#;-@%1=f-UOa&TcXsRUY(EHHQ~AcuH(1FvRzKTIa~C#+T>dO)^$f0u48grd-Y&I k^49i;jK`{StG+Nd`s#hUHdB%hm~= GetScreenWidth()) player.hitbox.x = GetScreenWidth() - player.hitbox.width; @@ -174,7 +183,7 @@ void updateGame(void) if (ball.active) { score++; - // moveiement of the balls + // movement of the ball ball.position.x += GetFrameTime() * ball.speed.x; ball.position.y += GetFrameTime() * ball.speed.y; @@ -232,7 +241,7 @@ void drawGame(void) DrawRectangle(0, 0, screenWidth, screenHeight, ORANGE); DrawText("Controls", 10, 10, 30, PURPLE); DrawText(TextFormat("BEST: %i", bestscore), 600, 0, 30, WHITE); - DrawText("Press the arrow keys to move", 10, 40, 10, RED); + DrawText("Press the arrow keys to move and 'X' to dash", 10, 40, 10, RED); DrawText("Press 'ENTER' to pause", 10, 60, 10, RED); DrawText("Press 'M' to mute", 10, 80, 10, RED); DrawText("Press 'Left-ALT' + 'F' for full screen", 10, 100, 10, RED); @@ -290,6 +299,7 @@ void gameReset(void) { // code to reset all variables without reloading assets player.currentframe = 0; + player.speed = 300.0f; player.hp = 30; player.hitbox = (Rectangle) { GetScreenWidth()/2.0f - 30, From f6b4f20820f6799523ee8c33f3a5826d3e31ab75 Mon Sep 17 00:00:00 2001 From: Mark B Date: Mon, 30 May 2022 12:16:22 -0400 Subject: [PATCH 2/2] added debug mode --- src/Main.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Main.c b/src/Main.c index ba5c82c..6b152e9 100644 --- a/src/Main.c +++ b/src/Main.c @@ -49,7 +49,7 @@ static Player player = { 0 }; static Ball ball = { 0 }; static bool pause; static bool mute; -static bool ShowHitbox; +static bool DebugMode; // Game functions static void gameSetup(void); @@ -117,7 +117,7 @@ void gameSetup(void) pause = 0; mute = 0; - ShowHitbox = 0; + DebugMode = 0; pauseTimer = 0; score = 0; } @@ -167,9 +167,9 @@ void updateGame(void) if ((player.hitbox.y + player.hitbox.height) >= GetScreenHeight()) player.hitbox.y = GetScreenHeight() - player.hitbox.height; else if (player.hitbox.y <= 0) player.hitbox.y = 0; - if (IsKeyPressed(KEY_D)) ball.active = !ball.active; + if (IsKeyPressed(KEY_B)) ball.active = !ball.active; - if (IsKeyPressed(KEY_H)) ShowHitbox = !ShowHitbox; + if (IsKeyPressed(KEY_D)) DebugMode = !DebugMode; if (IsKeyPressed(KEY_R)) { gameReset(); @@ -263,9 +263,13 @@ void drawGame(void) DrawFPS(10, 430); DrawText(TextFormat("HP: %i", player.hp), 10, 10, 20, RED); DrawText(TextFormat("SCORE: %i", score), 10, 30, 20, BLUE); - DrawText(TextFormat("BALL SIZE: %f", ball.radius), 10, 50, 20, PINK); + if (DebugMode) { + DrawText(TextFormat("BALL SIZE: %f", ball.radius), 10, 50, 20, GREEN); + DrawText(TextFormat("BALL POS X: %f, BALL POS Y: %f", ball.position.x, ball.position.y), 10, 70, 20, GREEN); + DrawText(TextFormat("BALL SPEED X: %f, BALL SPEED Y: %f", ball.speed.x, ball.speed.y), 10, 90, 20, GREEN); + DrawRectangleRec(player.hitbox, BLUE); + } if (ball.active) DrawCircleV(ball.position, (float)ball.radius, ball.color); - if (ShowHitbox) DrawRectangleRec(player.hitbox, BLUE); DrawTextureRec(player.sprite, player.frameRec, player.sprite_pos, WHITE); if (pause && ((pauseTimer/30)%2)) DrawText("PAUSED", 330, 190, 30, PURPLE); break; @@ -312,7 +316,7 @@ void gameReset(void) ball.radius = 20; ball.active = true; - ShowHitbox = 0; + DebugMode = 0; pauseTimer = 0; score = 0;