mirror of
https://github.com/lisk77/comet.git
synced 2025-10-23 21:38:50 +00:00
feat: added examples to the repo
This commit is contained in:
parent
27a3ab6408
commit
e94df6c221
5 changed files with 65 additions and 1 deletions
|
@ -63,4 +63,4 @@ comet_resources = { path = "./crates/comet_resources", workspace = true }
|
||||||
comet_ecs = { path = "./crates/comet_ecs", workspace = true }
|
comet_ecs = { path = "./crates/comet_ecs", workspace = true }
|
||||||
comet_input = { path = "./crates/comet_input", workspace = true }
|
comet_input = { path = "./crates/comet_input", workspace = true }
|
||||||
comet_log = { path = "./crates/comet_log", workspace = true }
|
comet_log = { path = "./crates/comet_log", workspace = true }
|
||||||
comet_structs = { path = "./crates/comet_structs", workspace = true }
|
comet_structs = { path = "./crates/comet_structs", workspace = true }
|
||||||
|
|
14
examples/README.md
Normal file
14
examples/README.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Examples
|
||||||
|
|
||||||
|
This directory contains a few examples that demonstrate how you can use Comet to create an application/game.
|
||||||
|
|
||||||
|
Simply run
|
||||||
|
```bash
|
||||||
|
cargo run --example <example_name>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Example | Description |
|
||||||
|
|------------------------------------|-----------------------------------------------------------------------------------------|
|
||||||
|
| [hello_world](hello_world) | A simple boilerplate example to show how to properly start creating a Comet App. |
|
||||||
|
| [textured_entity](textured_entity) | This covers the basics on how to create a camera and your first entity with a texture |
|
||||||
|
|
17
examples/hello_world.rs
Normal file
17
examples/hello_world.rs
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
use comet::prelude::*;
|
||||||
|
|
||||||
|
// This function will only be called once before the event loop starts.
|
||||||
|
fn setup(app: &mut App, renderer: &mut Renderer2D) {}
|
||||||
|
|
||||||
|
// This function will be called on every tick after the event loop starts.
|
||||||
|
fn update(app: &mut App, renderer: &mut Renderer2D, dt: f32) {}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
// This creates a window with the title "Hello world".
|
||||||
|
// Note: You can call your functions differently if you want to though it is advised to use
|
||||||
|
// `setup` and `update` as the names.
|
||||||
|
// You can also replace `Renderer2D` with any other struct that implements the `Renderer` trait.
|
||||||
|
App::new()
|
||||||
|
.with_title("Hello world")
|
||||||
|
.run::<Renderer2D>(setup, update);
|
||||||
|
}
|
32
examples/textured_entity.rs
Normal file
32
examples/textured_entity.rs
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
use comet::prelude::*;
|
||||||
|
|
||||||
|
fn setup(app: &mut App, renderer: &mut Renderer2D) {
|
||||||
|
// Creating a texture atlas from the provided textures in the vector
|
||||||
|
renderer.set_texture_atlas(vec!["./resources/textures/comet_icon.png".to_string()]);
|
||||||
|
|
||||||
|
// Creating a camera entity
|
||||||
|
let cam = app.new_entity();
|
||||||
|
app.add_component(cam, Transform2D::new());
|
||||||
|
app.add_component(cam, Camera2D::new(Vec2::new(2.0, 2.0), 1.0, 1));
|
||||||
|
|
||||||
|
// Creating a textured entity
|
||||||
|
let e0 = app.new_entity();
|
||||||
|
app.add_component(e0, Transform2D::new());
|
||||||
|
|
||||||
|
let mut render = Render2D::new();
|
||||||
|
render.set_visibility(true);
|
||||||
|
render.set_texture("./resources/textures/comet_icon.png");
|
||||||
|
|
||||||
|
app.add_component(e0, render);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn update(app: &mut App, renderer: &mut Renderer2D, dt: f32) {
|
||||||
|
renderer.render_scene_2d(app.world())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
App::new()
|
||||||
|
.with_title("Textured Entity")
|
||||||
|
.with_preset(App2D)
|
||||||
|
.run::<Renderer2D>(setup, update);
|
||||||
|
}
|
|
@ -16,4 +16,5 @@ pub mod prelude {
|
||||||
pub use comet_log::*;
|
pub use comet_log::*;
|
||||||
pub use comet_colors::*;
|
pub use comet_colors::*;
|
||||||
pub use comet_ecs::*;
|
pub use comet_ecs::*;
|
||||||
|
pub use comet_math::*;
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue