mirror of
https://github.com/lisk77/comet.git
synced 2025-10-23 13:38:48 +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_input = { path = "./crates/comet_input", 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_colors::*;
|
||||
pub use comet_ecs::*;
|
||||
pub use comet_math::*;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue