From 79c8b9ab441493e3b3a37a59263f66896c9c90b3 Mon Sep 17 00:00:00 2001 From: Katharina Fey Date: Sun, 7 Feb 2021 16:44:44 +0100 Subject: rstnode: basic asset loading and prototype sprite rendering * restructure assets directory * implement asset loading and dynamic conversion to sprites * reload sprites with unique URIs to load at runtime * provide an updated renderer API to give access to client state * use new APIs to draw a single node frame on screen * use colour APIs to dynamically change node frame colour --- games/rstnode/rst-client/src/graphics/entities/mod.rs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'games/rstnode/rst-client/src/graphics/entities') diff --git a/games/rstnode/rst-client/src/graphics/entities/mod.rs b/games/rstnode/rst-client/src/graphics/entities/mod.rs index d3536d4f5fc2..17f26a8e5a70 100644 --- a/games/rstnode/rst-client/src/graphics/entities/mod.rs +++ b/games/rstnode/rst-client/src/graphics/entities/mod.rs @@ -22,20 +22,28 @@ pub struct NodeRndr { pub inner: Arc, } -impl EventHandler for NodeRndr { - fn update(&mut self, _: &mut Context) -> GameResult<()> { +impl Renderer for NodeRndr { + fn update(&mut self, _: &mut ClientState, _: &mut Context) -> GameResult<()> { Ok(()) } - fn draw(&mut self, ctx: &mut Context) -> GameResult<()> { + fn draw(&self, s: &ClientState, ctx: &mut Context) -> GameResult<()> { + let frame = s.assets().find("frame/frame_s").unwrap(); + + frame.draw( + ctx, + DrawParam::new().dest([256.0, 256.0]).color(graphics::RED), + )?; + let circ = Mesh::new_circle( ctx, DrawMode::fill(), Point2::from(&self.loc), - 128.0, + 64.0, 0.1, graphics::WHITE, - ).unwrap(); + ) + .unwrap(); circ.draw(ctx, DrawParam::new()).unwrap(); Ok(()) -- cgit v1.2.3