diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 7af499a..155290c 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -5,6 +5,7 @@ "label": "Launch", "type": "cargo", "command": "run", + "args": ["--", "--seed", "gargamel"], "options": { "env": { "RUST_BACKTRACE": "full" diff --git a/src/game/mod.rs b/src/game/mod.rs new file mode 100644 index 0000000..370d386 --- /dev/null +++ b/src/game/mod.rs @@ -0,0 +1,4 @@ +pub mod objects; +pub mod runtime; +pub mod seed; +pub mod setup; diff --git a/src/game/objects.rs b/src/game/objects.rs new file mode 100644 index 0000000..2ba8d60 --- /dev/null +++ b/src/game/objects.rs @@ -0,0 +1,18 @@ +use avian2d::prelude::*; +use bevy::prelude::*; + +#[derive(Component, Default)] +#[require(Collider, Mesh2d, MeshMaterial2d, Restitution = Restitution::new(1.0), RigidBody, TransformInterpolation, Transform)] +struct GameObject; + +#[derive(Component, Default)] +#[require(GameObject, RigidBody = RigidBody::Dynamic)] +pub struct Ball; + +#[derive(Component, Default)] +#[require(Ball)] +pub struct Player; + +#[derive(Component, Default)] +#[require(GameObject, RigidBody = RigidBody::Static)] +pub struct Wall; diff --git a/src/game/runtime.rs b/src/game/runtime.rs new file mode 100644 index 0000000..a0ab185 --- /dev/null +++ b/src/game/runtime.rs @@ -0,0 +1,58 @@ +use avian2d::prelude::*; +use bevy::{ + input::mouse::{AccumulatedMouseScroll, MouseScrollUnit}, + prelude::*, +}; + +use super::objects::Player; + +pub fn move_player( + time: Res