Struct bevy_tiled_camera::TiledCamera
source · pub struct TiledCamera {
pub pixels_per_tile: UVec2,
pub tile_count: UVec2,
/* private fields */
}
Expand description
A camera with a virtual grid for displaying low resolution pixel art.
Contains various functions for translating points between world space and the camera’s virtual grid tiles.
Fields§
§pixels_per_tile: UVec2
Pixels per tile determines the size of your tiles/art, depending on
the camera’s WorldSpace
.
tile_count: UVec2
The number of virtual grid tiles in the camera’s viewport.
Implementations§
source§impl TiledCamera
impl TiledCamera
sourcepub fn unit_cam(tile_count: impl Size2d, pixels_per_tile: impl Size2d) -> Self
pub fn unit_cam(tile_count: impl Size2d, pixels_per_tile: impl Size2d) -> Self
Creates a camera set to WorldSpace::Units
.
sourcepub fn pixel_cam(tile_count: impl Size2d, pixels_per_tile: impl Size2d) -> Self
pub fn pixel_cam(tile_count: impl Size2d, pixels_per_tile: impl Size2d) -> Self
Creates a camera set to WorldSpace::Pixels
.
sourcepub fn target_resolution(&self) -> UVec2
pub fn target_resolution(&self) -> UVec2
Retrieve the target resolution (in pixels) of the camera.
pub fn viewport_size(&self) -> UVec2
pub fn viewport_pos(&self) -> UVec2
sourcepub fn window_resolution(&self) -> UVec2
pub fn window_resolution(&self) -> UVec2
Window resolution from the last viewport update
sourcepub fn orthographic_size(&self) -> f32
pub fn orthographic_size(&self) -> f32
The orthographic size of the camera from the last viewport update
sourcepub fn tile_center_iter(
&self,
transform: &GlobalTransform
) -> impl Iterator<Item = Vec2>
pub fn tile_center_iter( &self, transform: &GlobalTransform ) -> impl Iterator<Item = Vec2>
Returns an iterator that yields the center of the camera’s virtual grid tiles in world space.
sourcepub fn tile_pos_iter(
&self,
cam_transform: &GlobalTransform
) -> impl Iterator<Item = Vec2>
pub fn tile_pos_iter( &self, cam_transform: &GlobalTransform ) -> impl Iterator<Item = Vec2>
Returns an iterator that yields the position of the camera’s virtual grid tiles in world space.
A tile’s “position” refers to the bottom left corner of the tile.
sourcepub fn world_to_local(
&self,
cam_transform: &GlobalTransform,
world_pos: impl Point2d
) -> Vec2
pub fn world_to_local( &self, cam_transform: &GlobalTransform, world_pos: impl Point2d ) -> Vec2
Transform from world space to camera-local space.
sourcepub fn local_to_world(
&self,
cam_transform: &GlobalTransform,
local_pos: impl Point2d
) -> Vec2
pub fn local_to_world( &self, cam_transform: &GlobalTransform, local_pos: impl Point2d ) -> Vec2
Transform from camera-local space to world space.
sourcepub fn world_to_index(
&self,
cam_transform: &GlobalTransform,
world_pos: impl Point2d
) -> IVec2
pub fn world_to_index( &self, cam_transform: &GlobalTransform, world_pos: impl Point2d ) -> IVec2
Convert a world position to it’s virtual tile index.
Tile indices are relative to the camera center.
sourcepub fn world_to_tile(
&self,
cam_transform: &GlobalTransform,
world_pos: impl Point2d
) -> Vec2
pub fn world_to_tile( &self, cam_transform: &GlobalTransform, world_pos: impl Point2d ) -> Vec2
Convert a world position to it’s virtual tile position.
A tile’s “position” refers to the bottom left point of the tile.
sourcepub fn index_to_tile_pos(
&self,
cam_transform: &GlobalTransform,
pos: impl GridPoint
) -> Vec2
pub fn index_to_tile_pos( &self, cam_transform: &GlobalTransform, pos: impl GridPoint ) -> Vec2
Convert a tile index to it’s virtual tile position in world space.
Tiles indices are relative to the camera center.
A tile’s “position” refers to the bottom left point of the tile.
sourcepub fn index_to_tile_center(
&self,
cam_transform: &GlobalTransform,
index: impl GridPoint
) -> Vec2
pub fn index_to_tile_center( &self, cam_transform: &GlobalTransform, index: impl GridPoint ) -> Vec2
Return the world center of the virtual tile at the given tile index.
Tile indices are relative to the camera center.
sourcepub fn set_world_space(&mut self, world_space: WorldSpace)
pub fn set_world_space(&mut self, world_space: WorldSpace)
Change the camera’s WorldSpace
.
sourcepub fn world_space(&self) -> WorldSpace
pub fn world_space(&self) -> WorldSpace
Get the camera’s WorldSpace
.
sourcepub fn unit_size(&self) -> Option<Vec2>
pub fn unit_size(&self) -> Option<Vec2>
Get unit size or None
, depending on the camera’s WorldSpace
.
This can be used for sizing spawned sprites. If the camera’s WorldSpace
is WorldSpace::Units
then a unit sized sprite should be the size of
a tile.
Otherwise it should use the default sprite size, which is the pixel dimensions
of the sprite’s texture.
sourcepub fn zoom(&self) -> u32
pub fn zoom(&self) -> u32
How much the camera view is scaled up, based on target resolution and window size.
sourcepub fn screen_to_world(
&self,
screen_pos: Vec2,
camera: &Camera,
camera_transform: &GlobalTransform
) -> Option<Vec2>
pub fn screen_to_world( &self, screen_pos: Vec2, camera: &Camera, camera_transform: &GlobalTransform ) -> Option<Vec2>
Convert a screen position (IE: The mouse cursor position) to it’s corresponding world position.
sourcepub fn world_to_screen(
&self,
world_pos: impl Point2d,
camera: &Camera,
camera_transform: &GlobalTransform
) -> Option<Vec2>
pub fn world_to_screen( &self, world_pos: impl Point2d, camera: &Camera, camera_transform: &GlobalTransform ) -> Option<Vec2>
Converts a world position to a screen position (0..resolution)
sourcepub fn world_grid(&self) -> &WorldGrid
pub fn world_grid(&self) -> &WorldGrid
Retrieve the camera’s WorldGrid
.
Trait Implementations§
source§impl Component for TiledCamera
impl Component for TiledCamera
§type Storage = TableStorage
type Storage = TableStorage
TableStorage
or SparseStorage
.Auto Trait Implementations§
impl Freeze for TiledCamera
impl RefUnwindSafe for TiledCamera
impl Send for TiledCamera
impl Sync for TiledCamera
impl Unpin for TiledCamera
impl UnwindSafe for TiledCamera
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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
source§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut Components, storages: &mut Storages, ids: &mut impl FnMut(ComponentId) )
unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
fn get_components(self, func: &mut impl FnMut(StorageType, OwningPtr<'_>))
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.