#joystick #macroquad #portable #gamedev

macroquad-virtual-joystick

simple joystick for macroquad games

2 unstable releases

0.2.0 May 12, 2021
0.1.0 May 1, 2021

#1136 in Game dev

40 downloads per month
Used in xonix

MIT license

15KB
224 lines

simple joystick for macroquad games

The joystick can be updated by touches or mouse. Feel free to contribute!

Warning

This library is currently not stable. Each version can introduce breaking changes!

Example

use macroquad::prelude::*;
use macroquad_virtual_joystick::Joystick;

#[macroquad::main("Simple Joystick")]
async fn main() {
    const SPEED: f32 = 2.5;
    let mut position = Vec2::new(screen_width() / 2.0, screen_height() / 4.0);
    let mut joystick = Joystick::new(100.0, 200.0, 50.0);
    loop {
        clear_background(WHITE);

        let joystick_event = joystick.update();
        position += joystick_event.direction.to_local() * joystick_event.intensity * SPEED;

        draw_circle(position.x, position.y, 50.0, YELLOW);

        joystick.render();
        next_frame().await
    }
}

lib.rs:

A simple joystick for macroquad games

The joystick can be updated by touches or mouse

Example

use macroquad::prelude::*;
use macroquad_virtual_joystick::Joystick;

#[macroquad::main("Simple Joystick")]
async fn main() {
    const SPEED: f32 = 2.5;
    let mut position = Vec2::new(screen_width() / 2.0, screen_height() / 4.);
    let mut joystick = Joystick::new(100.0, 200.0, 50.0);
    loop {
        clear_background(WHITE);

        let joystick_event = joystick.update();
        position += joystick_event.direction.to_local() * joystick_event.intensity * SPEED;

        draw_circle(position.x, position.y, 50., YELLOW);

        joystick.render();
        next_frame().await
    }
}

Dependencies

~18MB
~226K SLoC