mirror of
https://github.com/lisk77/comet.git
synced 2025-10-23 21:38:50 +00:00
feat(ecs): added a simple prefab system
This commit is contained in:
parent
fef128f8a7
commit
e1597e6fa4
10 changed files with 416 additions and 257 deletions
52
examples/prefabs.rs
Normal file
52
examples/prefabs.rs
Normal file
|
@ -0,0 +1,52 @@
|
|||
use comet::prelude::*;
|
||||
|
||||
fn setup(app: &mut App, renderer: &mut Renderer2D) {
|
||||
// Initialize the texture atlas
|
||||
renderer.initialize_atlas();
|
||||
|
||||
// Register components
|
||||
app.register_component::<Position2D>();
|
||||
app.register_component::<Color>();
|
||||
|
||||
// Register prefabs
|
||||
register_prefab!(
|
||||
app,
|
||||
"player",
|
||||
Position2D::from_vec(v2::new(0.0, 0.0)),
|
||||
Color::new(0.0, 1.0, 0.0, 1.0) // Green player
|
||||
);
|
||||
|
||||
register_prefab!(
|
||||
app,
|
||||
"enemy",
|
||||
Position2D::from_vec(v2::new(5.0, 5.0)),
|
||||
Color::new(1.0, 0.0, 0.0, 1.0) // Red enemy
|
||||
);
|
||||
|
||||
register_prefab!(
|
||||
app,
|
||||
"pickup",
|
||||
Position2D::from_vec(v2::new(-5.0, -5.0)),
|
||||
Color::new(1.0, 1.0, 0.0, 1.0) // Yellow pickup
|
||||
);
|
||||
|
||||
if let Some(player_id) = app.spawn_prefab("player") {
|
||||
debug!("Spawned player with ID: {}", player_id);
|
||||
}
|
||||
|
||||
if let Some(enemy_id) = app.spawn_prefab("enemy") {
|
||||
debug!("Spawned enemy with ID: {}", enemy_id);
|
||||
}
|
||||
|
||||
if let Some(pickup_id) = app.spawn_prefab("pickup") {
|
||||
debug!("Spawned pickup with ID: {}", pickup_id);
|
||||
}
|
||||
}
|
||||
|
||||
fn update(app: &mut App, renderer: &mut Renderer2D, dt: f32) {}
|
||||
|
||||
fn main() {
|
||||
App::new()
|
||||
.with_title("Prefabs Example")
|
||||
.run::<Renderer2D>(setup, update);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue