i has a stick!

This commit is contained in:
me 2025-12-20 18:56:34 +02:00
parent dd62cecd50
commit b0b10ef54c
3 changed files with 43 additions and 0 deletions

View file

@ -1,3 +1,5 @@
let speed = 100
let setup = fn() {
return {
.color: {
@ -23,6 +25,15 @@ let setup = fn() {
let update = fn(state, input) {
let delta = get_frame_time();
let movement = {
.x: input.gamepad1.sticks.left.x,
.y: input.gamepad1.sticks.left.y,
};
state.rect.dimensions.x =
state.rect.dimensions.x + (delta * speed * movement.x);
state.rect.dimensions.y =
state.rect.dimensions.y + (delta * speed * movement.y);
return state;
}

View file

@ -203,6 +203,18 @@ impl From<i32> for Expr {
}
}
impl From<f32> for Value {
fn from(f: f32) -> Value {
Value::Float(f)
}
}
impl From<f32> for Expr {
fn from(f: f32) -> Expr {
Expr::Value(f.into())
}
}
impl From<bool> for Value {
fn from(b: bool) -> Value {
Value::Boolean(b)

View file

@ -88,6 +88,25 @@ pub fn update(state: &mut State, input: Input) {
("down", input.gamepad1.dpad.down.into()),
]),
),
(
"sticks",
helpers::record(vec![
(
"left",
helpers::record(vec![
("x", input.gamepad1.left_stick.x.into()),
("y", (0.0 - input.gamepad1.left_stick.y).into()),
]),
),
(
"right",
helpers::record(vec![
("x", input.gamepad1.right_stick.x.into()),
("y", (0.0 - input.gamepad1.right_stick.y).into()),
]),
),
]),
),
]),
)]);
match interpret::interpret(
@ -105,6 +124,7 @@ pub fn fetch_events(state: &mut State) -> Input {
let mut input = Input::new();
for gamepad in state.gamepads.all() {
//println!("{:#?}", gamepad.all_currently_pressed().collect::<Vec<_>>());
// action buttons
input.gamepad1.buttons.a = gamepad.is_currently_pressed(gamepads::Button::ActionRight);
input.gamepad1.buttons.b = gamepad.is_currently_pressed(gamepads::Button::ActionDown);