Minor cleanup
parent
8fc23dd359
commit
53927a9944
|
@ -1,6 +1,3 @@
|
||||||
use sdl2::gfx::primitives::DrawRenderer;
|
|
||||||
use sdl2::pixels::Color;
|
|
||||||
|
|
||||||
use crate::DrawContext;
|
use crate::DrawContext;
|
||||||
use crate::Drawable;
|
use crate::Drawable;
|
||||||
use crate::SpriteAtlas;
|
use crate::SpriteAtlas;
|
||||||
|
@ -19,11 +16,6 @@ impl Drawable for Doodad {
|
||||||
let sprite = sa.get(&self.sprite);
|
let sprite = sa.get(&self.sprite);
|
||||||
sprite.draw(dc.canvas, pos, self.angle, 1.0)?;
|
sprite.draw(dc.canvas, pos, self.angle, 1.0)?;
|
||||||
|
|
||||||
let p = self.pos.screen_position_real(dc);
|
|
||||||
dc.canvas
|
|
||||||
.aa_circle(p.x as i16, p.y as i16, 5, Color::RGB(255, 0, 0))?;
|
|
||||||
dc.canvas.set_draw_color(Color::RGB(0, 0, 0));
|
|
||||||
|
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,12 @@ impl Cartesian {
|
||||||
pub fn new(x: f64, y: f64) -> Self {
|
pub fn new(x: f64, y: f64) -> Self {
|
||||||
Cartesian { x, y }
|
Cartesian { x, y }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
pub fn norm(&self) -> f64 {
|
||||||
|
return (self.x * self.x + self.y * self.y).sqrt();
|
||||||
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<(u32, u32)> for Cartesian {
|
impl From<(u32, u32)> for Cartesian {
|
||||||
|
|
|
@ -13,45 +13,32 @@ impl WorldPosition {
|
||||||
WorldPosition { pos: pos, par }
|
WorldPosition { pos: pos, par }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
fn from_screen_position(dc: &DrawContext, pos: Cartesian, par: f64) -> Self {
|
fn from_screen_position(dc: &DrawContext, pos: Cartesian, par: f64) -> Self {
|
||||||
WorldPosition {
|
WorldPosition {
|
||||||
par,
|
par,
|
||||||
pos: ((pos * Cartesian::new(1.0, -1.0)) + dc.top_left) * par + dc.camera.pos,
|
pos: ((pos * Cartesian::new(1.0, -1.0)) + dc.top_left) * par + dc.camera.pos,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
/// Get the position of this drawable on the screen
|
/// Transform this world coordinate into a position on the screen,
|
||||||
/// (0, 0) is at top-left corner.
|
/// taking parallax into account. (0, 0) is at top-left corner.
|
||||||
///
|
|
||||||
/// Returned position is this object's center.
|
/// Returned position is this object's center.
|
||||||
pub fn screen_position(&self, dc: &DrawContext) -> Cartesian {
|
pub fn screen_position(&self, dc: &DrawContext) -> Cartesian {
|
||||||
let par = self.par;
|
let par = self.par;
|
||||||
let pos: Cartesian = self.pos.into();
|
let pos: Cartesian = self.pos;
|
||||||
return (((pos - dc.camera.pos) / par) - dc.top_left) * Cartesian::new(1.0, -1.0);
|
return (((pos - dc.camera.pos) / par) - dc.top_left) * Cartesian::new(1.0, -1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get the position of this drawable on the screen
|
/*
|
||||||
/// (0, 0) is at top-left corner.
|
/// Transform this world coordinate into a position on the screen, ignoring parallax.
|
||||||
///
|
/// Used for debugging.
|
||||||
/// Returned position is this object's center.
|
|
||||||
pub fn screen_position_real(&self, dc: &DrawContext) -> Cartesian {
|
pub fn screen_position_real(&self, dc: &DrawContext) -> Cartesian {
|
||||||
let pos: Cartesian = self.pos.into();
|
let pos: Cartesian = self.pos;
|
||||||
return ((pos - dc.camera.pos) - dc.top_left) * Cartesian::new(1.0, -1.0);
|
return ((pos - dc.camera.pos) - dc.top_left) * Cartesian::new(1.0, -1.0);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
/// Is this object on screen?
|
|
||||||
fn on_screen(&self, dc: &DrawContext) -> bool {
|
|
||||||
let pos = self.screen_position(dc);
|
|
||||||
let (width, height) = (10, 10); //TODO: actual
|
|
||||||
|
|
||||||
// Don't draw if we're not on the screen.
|
|
||||||
// An offset is included to ensure we're completely
|
|
||||||
// off the screen. We add the whole width intentionally.
|
|
||||||
return !(pos.x < -1.0 * (width as f64)
|
|
||||||
|| pos.x > dc.window_size.x + width as f64
|
|
||||||
|| pos.y < -1.0 * (height as f64)
|
|
||||||
|| pos.y > dc.window_size.y + height as f64);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Into<Cartesian> for WorldPosition {
|
impl Into<Cartesian> for WorldPosition {
|
||||||
|
|
|
@ -60,17 +60,6 @@ impl<'a> Sprite<'a> {
|
||||||
false,
|
false,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
/*
|
|
||||||
canvas.set_draw_color(Color::RGB(255, 0, 0));
|
|
||||||
canvas.aa_circle(
|
|
||||||
position.x as i16,
|
|
||||||
position.y as i16,
|
|
||||||
5,
|
|
||||||
Color::RGB(255, 0, 0),
|
|
||||||
)?;
|
|
||||||
canvas.set_draw_color(Color::RGB(0, 0, 0));
|
|
||||||
*/
|
|
||||||
|
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue