pub struct GridPosition {
pub cell_size: (f32, f32),
pub x: i32,
pub y: i32,
}
Fields§
§cell_size: (f32, f32)
§x: i32
§y: i32
Implementations§
Source§impl GridPosition
impl GridPosition
Sourcepub fn new(x: i32, y: i32, cell_size: (f32, f32)) -> Self
pub fn new(x: i32, y: i32, cell_size: (f32, f32)) -> Self
Examples found in repository?
examples/pixel_offscreen.rs (line 24)
21 pub fn new(_ctx: &mut Context) -> MainState {
22 let mut pixel_handler = PixelHandler::new(CELL_SIZE);
23
24 let pixel = Pixel::new(GridPosition::new(10, 10, CELL_SIZE), Color::BLUE);
25 pixel_handler.register_pixel(pixel);
26
27 MainState { pixel_handler }
28 }
29}
30
31impl EventHandler for MainState {
32 fn update(&mut self, _ctx: &mut Context) -> GameResult {
33 Ok(())
34 }
35
36 fn draw(&mut self, ctx: &mut Context) -> GameResult {
37 let mut canvas = Canvas::from_frame(ctx, Color::WHITE);
38 let pixel_handler = &mut self.pixel_handler;
39
40 pixel_handler.draw_grid(ctx, Color::BLACK);
41 pixel_handler.display_fps(ctx);
42
43 for (_position, pixel) in pixel_handler.pixels.iter_mut() {
44 let next_position = pixel.position + GridPosition::new(0, 1, CELL_SIZE);
45
46 if next_position.is_offscreen(ctx) {
47 continue;
48 } else {
49 pixel.position = next_position;
50 }
51 }
52
53 pixel_handler.update(&mut canvas, ctx);
54 canvas.finish(ctx)
55 }
Sourcepub fn from_vec2(vec: Vec2, cell_size: (f32, f32)) -> Self
pub fn from_vec2(vec: Vec2, cell_size: (f32, f32)) -> Self
Examples found in repository?
examples/simple_render.rs (line 50)
43 fn mouse_button_down_event(
44 &mut self,
45 _ctx: &mut Context,
46 _button: MouseButton,
47 x: f32,
48 y: f32,
49 ) -> GameResult {
50 let position = GridPosition::from_vec2(Vec2::new(x, y), CELL_SIZE);
51
52 println!("Adding pixel at {:?}", position);
53
54 let pixel = Pixel::new(position, Color::new(0.0, 0.0, 0.0, 1.0));
55 self.pixel_handler.pixels.insert(position, pixel);
56
57 Ok(())
58 }
pub fn as_vec2(&self) -> Vec2
pub fn as_rect(&self) -> Rect
Sourcepub fn is_offscreen(&self, ctx: &mut Context) -> bool
pub fn is_offscreen(&self, ctx: &mut Context) -> bool
Examples found in repository?
examples/pixel_offscreen.rs (line 46)
36 fn draw(&mut self, ctx: &mut Context) -> GameResult {
37 let mut canvas = Canvas::from_frame(ctx, Color::WHITE);
38 let pixel_handler = &mut self.pixel_handler;
39
40 pixel_handler.draw_grid(ctx, Color::BLACK);
41 pixel_handler.display_fps(ctx);
42
43 for (_position, pixel) in pixel_handler.pixels.iter_mut() {
44 let next_position = pixel.position + GridPosition::new(0, 1, CELL_SIZE);
45
46 if next_position.is_offscreen(ctx) {
47 continue;
48 } else {
49 pixel.position = next_position;
50 }
51 }
52
53 pixel_handler.update(&mut canvas, ctx);
54 canvas.finish(ctx)
55 }
Trait Implementations§
Source§impl Add for GridPosition
impl Add for GridPosition
Source§impl AddAssign for GridPosition
impl AddAssign for GridPosition
Source§fn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
Performs the
+=
operation. Read moreSource§impl Clone for GridPosition
impl Clone for GridPosition
Source§fn clone(&self) -> GridPosition
fn clone(&self) -> GridPosition
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for GridPosition
impl Debug for GridPosition
Source§impl Hash for GridPosition
impl Hash for GridPosition
Source§impl Mul for GridPosition
impl Mul for GridPosition
Source§impl PartialEq for GridPosition
impl PartialEq for GridPosition
impl Copy for GridPosition
impl Eq for GridPosition
Auto Trait Implementations§
impl Freeze for GridPosition
impl RefUnwindSafe for GridPosition
impl Send for GridPosition
impl Sync for GridPosition
impl Unpin for GridPosition
impl UnwindSafe for GridPosition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> HasMut<T> for T
impl<T> HasMut<T> for T
Source§fn retrieve_mut(&mut self) -> &mut T
fn retrieve_mut(&mut self) -> &mut T
Method to retrieve the context type as mutable.
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more