Compare commits

..

3 Commits

Author SHA1 Message Date
Joey Pollack c586c87afe Adds movement plugin, ball moves now 2 years ago
Joey Pollack dcbd33e136 Adds ball and paddle to scene 2 years ago
Joey Pollack 9d0a79f2fd Adds basic scene with brick in core plugin 2 years ago

8
Cargo.lock generated

@ -1162,6 +1162,7 @@ name = "bricks"
version = "0.1.0"
dependencies = [
"bevy",
"core",
"hello",
]
@ -1375,6 +1376,13 @@ dependencies = [
"const_soft_float",
]
[[package]]
name = "core"
version = "0.1.0"
dependencies = [
"bevy",
]
[[package]]
name = "core-foundation"
version = "0.9.4"

@ -26,9 +26,11 @@ linker = "rust-lld.exe"
[dependencies]
hello = { workspace = true }
core = { workspace = true }
bevy = { workspace = true }
# bevy = { version = "0.13.0", features = ["dynamic_linking"] }
[workspace.dependencies]
hello = { path = "crates/hello" }
core = { path = "crates/core" }
bevy = { version = "0.13.0" }

BIN
asset src/ball.blend (Stored with Git LFS)

Binary file not shown.

BIN
asset src/paddle.blend (Stored with Git LFS)

Binary file not shown.

BIN
assets/ball.glb (Stored with Git LFS)

Binary file not shown.

BIN
assets/paddle.glb (Stored with Git LFS)

Binary file not shown.

@ -0,0 +1,11 @@
[package]
name = "core"
description = "The Core Module For the Game"
version = "0.1.0"
edition = "2021"
[dependencies]
bevy = { workspace = true }

@ -0,0 +1,63 @@
use bevy::prelude::*;
use crate::movement::{MovementPlugin, Velocity};
pub struct CorePlugin;
impl Plugin for CorePlugin
{
fn build(&self, app: &mut App)
{
app.add_plugins(MovementPlugin)
.add_systems(Startup, setup);
}
}
fn setup(mut commands: Commands, server: Res<AssetServer>, mut ambient_light: ResMut<AmbientLight>)
{
ambient_light.brightness = 200.0;
// CAMERA
commands.spawn(Camera3dBundle {
transform: Transform::from_xyz(0.0, 0.0, -25.0).looking_at(Vec3::ZERO, Vec3::Y),
..default()
});
// LIGHT
commands.spawn(PointLightBundle {
point_light: PointLight {
intensity: 2_000_000.0,
range: 100.0,
radius: 10.0,
..default()
},
transform: Transform::from_xyz(0.0, 5.0, -5.0),
..default()
});
// BRICK
let brick_handle: Handle<Scene> = server.load("brick.glb#Scene0");
commands.spawn(SceneBundle {
scene: brick_handle,
transform: Transform::from_xyz(0.0, 8.0, 0.0),
.. default()
});
// BALL
let ball_handle: Handle<Scene> = server.load("ball.glb#Scene0");
commands.spawn((SceneBundle {
scene: ball_handle,
transform: Transform::from_xyz(0.0, -7.75, 0.0),
..default()
},
Velocity::new(0.5, 0.5, 0.0)));
// PADDLE
let paddle_handle: Handle<Scene> = server.load("paddle.glb#Scene0");
commands.spawn(SceneBundle {
scene: paddle_handle,
transform: Transform::from_xyz(0.0, -8.0, 0.0),
..default()
});
}

@ -0,0 +1,4 @@
pub mod core;
pub mod movement;

@ -0,0 +1,39 @@
use bevy::prelude::*;
pub struct MovementPlugin;
impl Plugin for MovementPlugin
{
fn build(&self, app: &mut App)
{
app.add_systems(Update, update_movement);
}
}
#[derive(Component)]
pub struct Velocity(Vec3);
impl Default for Velocity
{
fn default() -> Self
{
Self { 0: Vec3::new(0.0, 0.0, 0.0)}
}
}
impl Velocity
{
pub fn new(x: f32, y: f32, z: f32) -> Self{
Self { 0: Vec3::new(x, y, z) }
}
}
// SYSTEMS
fn update_movement(mut moving_objects: Query<(&Velocity, &mut Transform)>, time: Res<Time>)
{
for (velocity, mut transform) in moving_objects.iter_mut()
{
transform.translation += velocity.0 * time.delta_seconds();
}
}

@ -1,13 +1,13 @@
use bevy::prelude::*;
// extern crate hello;
use hello::hello::HelloPlugin;
// use hello::hello::HelloPlugin;
use core::core::CorePlugin;
fn main()
{
App::new()
.add_plugins((DefaultPlugins, HelloPlugin))
.add_plugins((DefaultPlugins, CorePlugin))
.run();
}

Loading…
Cancel
Save