|
|
@@ -1,56 +1,40 @@
|
|
|
use bevy::prelude::*;
|
|
|
|
|
|
-struct Plane {
|
|
|
- mesh: Mesh,
|
|
|
- vertex_buffer: VertexBuffer,
|
|
|
+mod config;
|
|
|
+mod player;
|
|
|
+
|
|
|
+fn main(){
|
|
|
+ App::new()
|
|
|
+ .add_plugins(DefaultPlugins)
|
|
|
+ .add_systems(Startup, setup1)
|
|
|
+ .add_systems(Update, player::movement::player_movement);
|
|
|
}
|
|
|
|
|
|
-impl Plane {
|
|
|
- fn new(app: &mut App) -> Self {
|
|
|
- let mut mesh = Mesh::new(PrimitiveTopology::TriangleList);
|
|
|
- mesh.add_vertices(&[
|
|
|
- Vertex::new(Position([0.0, 0.0, 0.0]), Normal([0.0, 0.0, 1.0]), Uv([0.0, 0.0])),
|
|
|
- Vertex::new(Position([10.0, 0.0, 0.0]), Normal([0.0, 0.0, 1.0]), Uv([1.0, 0.0])),
|
|
|
- Vertex::new(Position([10.0, 10.0, 0.0]), Normal([0.0, 0.0, 1.0]), Uv([1.0, 1.0])),
|
|
|
- ]);
|
|
|
- mesh.set_indices(&[0, 1, 2]);
|
|
|
-
|
|
|
- let vertex_buffer = VertexBuffer::from_mesh(mesh);
|
|
|
-
|
|
|
- Self { mesh, vertex_buffer }
|
|
|
- }
|
|
|
-
|
|
|
- fn update_vertex_positions(&self, time: f32) {
|
|
|
- let amplitude = 1.0;
|
|
|
- let frequency = 1.0;
|
|
|
-
|
|
|
- for vertex in self.vertex_buffer.iter_mut() {
|
|
|
- vertex.position[0] += amplitude * (f32::sin(frequency * time) - f32::sin(frequency * (time - 1.0)));
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-fn main() {
|
|
|
- let mut app = App::new();
|
|
|
-
|
|
|
- app.add_startup_system(setup);
|
|
|
- app.add_system(update);
|
|
|
-
|
|
|
- app.run();
|
|
|
-}
|
|
|
-
|
|
|
-fn setup(mut commands: Commands) {
|
|
|
- let plane = Plane::new(&mut commands);
|
|
|
-
|
|
|
- commands.spawn_bundle((
|
|
|
- plane.mesh,
|
|
|
- plane.vertex_buffer,
|
|
|
- GlobalTransform::identity(),
|
|
|
+fn setup1(
|
|
|
+ mut commands: Commands,
|
|
|
+ mut meshes : ResMut<Assets<Mesh>>,
|
|
|
+ mut materials : ResMut<Assets<StandardMaterial>>
|
|
|
+){
|
|
|
+ commands.spawn(PbrBundle{
|
|
|
+ mesh: meshes.add(Mesh::from(shape::Cube { size: 2.0 })),
|
|
|
+ material: materials.add(Color::rgb(0.5, 0.5, 1.0).into()),
|
|
|
+ ..Default::default()
|
|
|
+ });
|
|
|
+
|
|
|
+ commands.spawn((Camera3dBundle {
|
|
|
+ transform: Transform::from_xyz(-2.0, 2.5, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
|
|
|
+ ..default()
|
|
|
+ },player::movement::Player
|
|
|
));
|
|
|
-}
|
|
|
|
|
|
-fn update(time: Res<Time>, mut planes: Query<&mut Plane>) {
|
|
|
- for mut plane in planes.iter_mut() {
|
|
|
- plane.update_vertex_positions(time.seconds());
|
|
|
- }
|
|
|
-}
|
|
|
+ commands.spawn(PointLightBundle {
|
|
|
+ point_light: PointLight {
|
|
|
+ intensity: 1500.0,
|
|
|
+ shadows_enabled: true,
|
|
|
+ ..default()
|
|
|
+ },
|
|
|
+ transform: Transform::from_xyz(4.0, 8.0, 4.0),
|
|
|
+ ..default()
|
|
|
+ });
|
|
|
+
|
|
|
+}
|