Paulo Laureano Because coding is fun!

Example "keyboard input" in Rust


https://www.raylib.com/examples/web/core/loader.html?name=core_input_keys

The original C example, edited for easier comparison:


#include "raylib.h"

int main(void)
{
const int screenWidth = 800;
const int screenHeight = 450;

InitWindow(screenWidth, screenHeight, "raylib [core] example - keyboard input");

Vector2 ballPosition = { (float)screenWidth/2, (float)screenHeight/2 };

SetTargetFPS(60); // Set our game to run at 60 frames-per-second

while (!WindowShouldClose()) // Detect window close button or ESC key
{
if (IsKeyDown(KEY_RIGHT)) ballPosition.x += 2.0f;
if (IsKeyDown(KEY_LEFT)) ballPosition.x -= 2.0f;
if (IsKeyDown(KEY_UP)) ballPosition.y -= 2.0f;
if (IsKeyDown(KEY_DOWN)) ballPosition.y += 2.0f;


BeginDrawing();

ClearBackground(RAYWHITE);

DrawText("move the ball with arrow keys", 10, 10, 20, DARKGRAY);

DrawCircleV(ballPosition, 50, MAROON);

EndDrawing();
}

CloseWindow(); // Close window and OpenGL context

return 0;
}



And now the Rust version:



use raylib::prelude::KeyboardKey::*;
use raylib::prelude::*;

fn main() {
let screen_width = 800.0;
let screen_height = 450.0;

let (mut rl, thread) = raylib::init()
.size(screen_width as i32, screen_height as i32)
.title("raylib [core] example - keyboard input")
.build();

let mut ball_position = Vector2 {
x: screen_width / 2.0,
y: screen_height / 2.0,
};

rl.set_target_fps(60); // Set our game to run at 60 frames-per-second

while !rl.window_should_close() {
if rl.is_key_down(KEY_RIGHT) {
ball_position.x += 2.0;
}
if rl.is_key_down(KEY_LEFT) {
ball_position.x -= 2.0;
}
if rl.is_key_down(KEY_UP) {
ball_position.y -= 2.0;
}
if rl.is_key_down(KEY_DOWN) {
ball_position.y += 2.0;
}

let mut d = rl.begin_drawing(&thread);

d.clear_background(Color::RAYWHITE);
d.draw_text("move the ball with arrow keys", 10, 10, 20, Color::DARKGRAY);

d.draw_circle_v(ball_position, 50.0, Color::MAROON);
}
}