appl

Crates.ioappl
lib.rsappl
version0.2.2
sourcesrc
created_at2021-09-24 06:10:17.79628
updated_at2021-09-24 09:55:59.992516
descriptionAppl is a physics engine powered by the Rapier library. It is currently 2d only.
homepagehttps://github.com/AribYadi/Appl.git
repositoryhttps://github.com/AribYadi/Appl.git
max_upload_size
id455754
size38,957
AribYadi (AribYadi)

documentation

README

Appl

version downloads license

Description

Appl Logo Appl is a library that provides abstraction over the Rapier library.
Appl was created due to the lack of any physics engine for beginners to use.
Appl's main purpose is to be simple and easy to use.

Example

use appl::*;

fn main() {
  // Initialize Appl World
  let mut appl = ApplWorld::new(Vect2 { x: 0.0, y: 9.81 }, 50.0);
  // Create ground rigid body
  let ground = appl.add_rigid_body(
    BodyType::Static,
    0.3,
    BodyShape::Cuboid {
      width: 64.0,
      height: 32.0,
    },
    0.3,
    Vect2 { x: 0.0, y: 320.0 }
  );
  // Create box1 rigid body
  let box1 = appl.add_rigid_body(
    BodyType::Dynamic,
    0.3,
    BodyShape::Cuboid {
      width: 32.0,
      height: 32.0,
    },
    0.3,
    Vect2 { x: 0.0, y: 0.0 }
  );

  for _ in 0..200 {
    // Update the world
    appl.step();

    // Prints box1 position
    let box1_pos = appl.get_rigid_body_pos(box1);
    println("{}, {}", box1_pos.x, box1_pos.y);
  }
}

How to contribute

Any pull request are definitely welcomed and appreciated!

If you have any issues or questions, please open an issue and i will try to help you.

Project Status

This project is in it's very very early stage and currently only works for 2d.

License

MIT

Commit count: 16

cargo fmt