From f03f093909ec899eecbc298063afd2ca37ce6b07 Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Fri, 25 Oct 2024 00:47:04 -0700 Subject: [PATCH] Add input_virtual_controls to MSVC projects (#4433) Fix input_virtual_controls example to use correct default font sizes --- examples/core/core_input_virtual_controls.c | 22 +++++++++--------- examples/core/core_input_virtual_controls.png | Bin 9604 -> 9094 bytes projects/VS2022/raylib.sln | 19 +++++++++++++++ 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/examples/core/core_input_virtual_controls.c b/examples/core/core_input_virtual_controls.c index ae7f770a..2d2b91e6 100644 --- a/examples/core/core_input_virtual_controls.c +++ b/examples/core/core_input_virtual_controls.c @@ -54,8 +54,8 @@ int main(void) // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { - // Update - //-------------------------------------------------------------------------- + // Update + //-------------------------------------------------------------------------- dpadKeydown = -1; //reset float inputX=0; float inputY=0; @@ -89,10 +89,9 @@ int main(void) case 3: playerY += 50*GetFrameTime(); default:; }; - //-------------------------------------------------------------------------- - - // Draw - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // Draw + //-------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); for(int i=0;i<4;i++) @@ -103,14 +102,15 @@ int main(void) { //draw label DrawText(TextSubtext(dpadLabel,i,1), - dpadCollider[i][0]-5, - dpadCollider[i][1]-5,16,BLACK); + dpadCollider[i][0]-7, + dpadCollider[i][1]-8,20,BLACK); } - } - DrawText("Player",playerX,playerY,16,BLACK); + + DrawRectangle(playerX-4,playerY-4,75,28,RED); + DrawText("Player",playerX,playerY,20,WHITE); EndDrawing(); - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- } // De-Initialization diff --git a/examples/core/core_input_virtual_controls.png b/examples/core/core_input_virtual_controls.png index a9776e68a3dfdd01f5b8afc51859ace27a150622..cb1444598017b9d7ff83480f66909c8523ece519 100644 GIT binary patch literal 9094 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 H{`@}x#HYs# literal 9604 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 bk