use fyrox::{ asset::manager::ResourceManager, resource::texture::Texture, core::{algebra::Vector3, math::Rect}, scene::{ base::BaseBuilder, graph::Graph, transform::TransformBuilder, rigidbody::RigidBodyType, dim2::{ collider::{ColliderBuilder, ColliderShape, CuboidShape}, rectangle::RectangleBuilder, rigidbody::RigidBodyBuilder, }, }, }; // /mnt/23154027-2dd3-43ea-93f1-02a8df7a3c5a/projects/fyrox/platformer/assets/data/tiles/ // pub fn build_map(graph: &mut Graph, resource_manager: &ResourceManager) { let ground_texture = resource_manager.request::("assets/data/tiles/2.png"); for x in -100..100 { let rb_transform = TransformBuilder::new() .with_local_position(Vector3::new( x as f32, -5.0, 0.0, )) .build(); RigidBodyBuilder::new( BaseBuilder::new() .with_children(&[ // Collider to prevent player from moving past boundary RectangleBuilder::new(BaseBuilder::new()) .with_texture(ground_texture.clone()) // Sprite is located in top left corner of sprite sheet .with_uv_rect(Rect::new(0.0, 0.0, 1.0, 1.0)) .build(graph), ColliderBuilder::new(BaseBuilder::new()).with_shape(ColliderShape::Cuboid(CuboidShape::default())).build(graph), ]) // Optional, set name of tile .with_name(format!("Boundary ({x}, 0)",)) // Set position of tile .with_local_transform(rb_transform), ) // Turn off gravity for tile .with_gravity_scale(0.) // Set tile to be static and not rotate .with_rotation_locked(true) .with_body_type(RigidBodyType::Static) .build(graph); } }