|
|
@ -6,10 +6,8 @@ |
|
|
|
* |
|
|
|
* Example originally created with raylib 5.0, last time updated with raylib 5.0 |
|
|
|
* |
|
|
|
* Example create by GreenSnakeLinux (@GreenSnakeLinux), |
|
|
|
* lighter by oblerion (@oblerion) and |
|
|
|
* reviewed by Ramon Santamaria (@raysan5) and |
|
|
|
* improved by danilwhale (@danilwhale) |
|
|
|
* Example contributed by GreenSnakeLinux (@GreenSnakeLinux), |
|
|
|
* reviewed by Ramon Santamaria (@raysan5), oblerion (@oblerion) and danilwhale (@danilwhale) |
|
|
|
* |
|
|
|
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, |
|
|
|
* BSD-like license that allows static linking with closed source software |
|
|
@ -19,6 +17,7 @@ |
|
|
|
********************************************************************************************/ |
|
|
|
|
|
|
|
#include "raylib.h" |
|
|
|
|
|
|
|
#include <math.h> |
|
|
|
|
|
|
|
typedef enum { |
|
|
@ -45,24 +44,21 @@ int main(void) |
|
|
|
Vector2 padPosition = { 100, 350 }; |
|
|
|
float buttonRadius = 30; |
|
|
|
|
|
|
|
Vector2 buttonPositions[BUTTON_MAX] = |
|
|
|
{ |
|
|
|
Vector2 buttonPositions[BUTTON_MAX] = { |
|
|
|
{ padPosition.x,padPosition.y - buttonRadius*1.5f }, // Up |
|
|
|
{ padPosition.x - buttonRadius*1.5f, padPosition.y }, // Left |
|
|
|
{ padPosition.x + buttonRadius*1.5f, padPosition.y }, // Right |
|
|
|
{ padPosition.x, padPosition.y + buttonRadius*1.5f } // Down |
|
|
|
}; |
|
|
|
|
|
|
|
const char *buttonLabels[BUTTON_MAX] = |
|
|
|
{ |
|
|
|
const char *buttonLabels[BUTTON_MAX] = { |
|
|
|
"Y", // Up |
|
|
|
"X", // Left |
|
|
|
"B", // Right |
|
|
|
"A" // Down |
|
|
|
}; |
|
|
|
|
|
|
|
Color buttonLabelColors[BUTTON_MAX] = |
|
|
|
{ |
|
|
|
Color buttonLabelColors[BUTTON_MAX] = { |
|
|
|
YELLOW, // Up |
|
|
|
BLUE, // Left |
|
|
|
RED, // Right |
|
|
@ -83,22 +79,15 @@ int main(void) |
|
|
|
{ |
|
|
|
// Update |
|
|
|
//-------------------------------------------------------------------------- |
|
|
|
if ((GetTouchPointCount() > 0)) |
|
|
|
{ |
|
|
|
// Use touch position |
|
|
|
inputPosition = GetTouchPosition(0); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
// Use mouse position |
|
|
|
inputPosition = GetMousePosition(); |
|
|
|
} |
|
|
|
if ((GetTouchPointCount() > 0)) inputPosition = GetTouchPosition(0); // Use touch position |
|
|
|
else inputPosition = GetMousePosition(); // Use mouse position |
|
|
|
|
|
|
|
// Reset pressed button to none |
|
|
|
pressedButton = BUTTON_NONE; |
|
|
|
|
|
|
|
// Make sure user is pressing left mouse button if they're from desktop |
|
|
|
if ((GetTouchPointCount() > 0) || ((GetTouchPointCount() == 0) && IsMouseButtonDown(MOUSE_BUTTON_LEFT))) |
|
|
|
if ((GetTouchPointCount() > 0) || |
|
|
|
((GetTouchPointCount() == 0) && IsMouseButtonDown(MOUSE_BUTTON_LEFT))) |
|
|
|
{ |
|
|
|
// Find nearest D-Pad button to the input position |
|
|
|
for (int i = 0; i < BUTTON_MAX; i++) |
|
|
@ -123,8 +112,8 @@ int main(void) |
|
|
|
case BUTTON_DOWN: playerPosition.y += playerSpeed*GetFrameTime(); break; |
|
|
|
default: break; |
|
|
|
}; |
|
|
|
|
|
|
|
//-------------------------------------------------------------------------- |
|
|
|
|
|
|
|
// Draw |
|
|
|
//-------------------------------------------------------------------------- |
|
|
|
BeginDrawing(); |
|
|
@ -157,4 +146,3 @@ int main(void) |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|