sfml3.rb

Module: SFML::Mouse

Defined in:
ext/window/mouse.c,
ext/window/mouse.c

Overview

Real-time mouse state and cursor positioning.

Class Method Summary collapse

Class Method Details

.button_pressed?(button) ⇒ Boolean

Returns true if button is currently pressed.

Returns:

  • (Boolean)

Returns:

  • (Boolean) —

    whether button (a Symbol like :left, :right, :middle, or an Integer) is currently pressed



52
53
54
# File 'ext/window/mouse.c', line 52

static VALUE Mouse_is_button_pressed(VALUE module, VALUE rb_button) {
    return BOOL2RB(sfMouse_isButtonPressed(mouse_button_from_rb(rb_button)));
}

.position(window = nil) ⇒ Vector2

Returns the mouse position in desktop coordinates, or relative to window.

Returns:

Returns:

  • (Vector2) —

    the mouse position in desktop coordinates, or relative to +window+'s client area when given



64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'ext/window/mouse.c', line 64

static VALUE Mouse_get_position(int argc, VALUE* argv, VALUE module) {
    VALUE rb_window;
    sfVector2i position;

    rb_scan_args(argc, argv, "01", &rb_window);
    if (NIL_P(rb_window)) {
        position = sfMouse_getPosition(NULL);
    } else {
        position = Mouse_get_relative_position(rb_window);
    }

    return vec2f_to_rb((sfVector2f){(float)position.x, (float)position.y});
}

.position=(value) ⇒ Vector2

Moves the mouse cursor to value, in desktop coordinates.

Returns:



106
107
108
# File 'ext/window/mouse.c', line 106

static VALUE Mouse_position_eq(VALUE module, VALUE rb_position) {
    return Mouse_set_position(1, &rb_position, module);
}

.button_pressed?(button) ⇒ Boolean

Returns true if button is currently pressed.

Returns:

  • (Boolean)

Returns:

  • (Boolean) —

    whether button (a Symbol like :left, :right, :middle, or an Integer) is currently pressed



52
53
54
# File 'ext/window/mouse.c', line 52

static VALUE Mouse_is_button_pressed(VALUE module, VALUE rb_button) {
    return BOOL2RB(sfMouse_isButtonPressed(mouse_button_from_rb(rb_button)));
}

.set_position(position, window = nil) ⇒ Vector2

Moves the mouse cursor to position, in desktop coordinates, or relative to +window+'s client area when given.

Returns:



86
87
88
89
90
91
92
93
94
95
96
97
# File 'ext/window/mouse.c', line 86

static VALUE Mouse_set_position(int argc, VALUE* argv, VALUE module) {
    VALUE rb_position, rb_window;

    rb_scan_args(argc, argv, "11", &rb_position, &rb_window);
    if (NIL_P(rb_window)) {
        sfMouse_setPosition(vec2i_from_rb(rb_position), NULL);
    } else {
        Mouse_set_relative_position(rb_window, vec2i_from_rb(rb_position));
    }

    return rb_position;
}