pub struct Context { /* private fields */ }
Expand description
A struct containing all of the ‘global’ state within the framework.
Implementations§
source§impl Context
impl Context
sourcepub fn run<S, F, E>(&mut self, init: F) -> Result<(), E>where
S: State<E>,
F: FnOnce(&mut Context) -> Result<S, E>,
E: From<TetraError>,
pub fn run<S, F, E>(&mut self, init: F) -> Result<(), E>where S: State<E>, F: FnOnce(&mut Context) -> Result<S, E>, E: From<TetraError>,
Runs the game.
The init
parameter takes a function or closure that creates a
State
implementation. A common pattern is to use method references
to pass in your state’s constructor directly - see the example below
for how this works.
The error type returned by your init
closure currently must match the error
type returned by your State
methods. This limitation may be lifted
in the future.
Errors
If the State
returns an error from update
, draw
or event
, the game will stop running and this method will
return the error.
Examples
use tetra::{Context, ContextBuilder, State};
struct GameState;
impl GameState {
fn new(ctx: &mut Context) -> tetra::Result<GameState> {
Ok(GameState)
}
}
impl State for GameState { }
fn main() -> tetra::Result {
// Because GameState::new takes `&mut Context` and returns a `State` implementation
// wrapped in a `Result`, you can use it without a closure wrapper:
ContextBuilder::new("Hello, world!", 1280, 720)
.build()?
.run(GameState::new)
}