Few fixes
This commit is contained in:
parent
94f0cdffca
commit
28ff6f28fa
@ -302,4 +302,10 @@ impl Inputs {
|
|||||||
let mut inner = self.0.borrow_mut();
|
let mut inner = self.0.borrow_mut();
|
||||||
inner.events.pop_front()
|
inner.events.pop_front()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Deletes all the events and resets all the values.
|
||||||
|
pub fn clear(&mut self) {
|
||||||
|
let mut inner = self.0.borrow_mut();
|
||||||
|
inner.events.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,6 +219,9 @@ impl Engine {
|
|||||||
|
|
||||||
self.scene = scene;
|
self.scene = scene;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// Clear the events received while document was out of focus
|
||||||
|
self.inputs.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
@ -239,6 +242,8 @@ impl Engine {
|
|||||||
self.canvas.set_height(window_height_u32);
|
self.canvas.set_height(window_height_u32);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let window_size = Vector::new(window_width, window_height);
|
||||||
|
|
||||||
let view = self.scene.view().unwrap(); // TODO remove this unwrap
|
let view = self.scene.view().unwrap(); // TODO remove this unwrap
|
||||||
|
|
||||||
// Clear render
|
// Clear render
|
||||||
@ -258,7 +263,7 @@ impl Engine {
|
|||||||
for j in 0..cols {
|
for j in 0..cols {
|
||||||
let tile = map.at(i, j);
|
let tile = map.at(i, j);
|
||||||
if tile.graphic.is_visible() {
|
if tile.graphic.is_visible() {
|
||||||
self.draw(&tile, view)?;
|
self.draw(&tile, view, window_size)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -266,7 +271,7 @@ impl Engine {
|
|||||||
// Draw characters
|
// Draw characters
|
||||||
for c in self.scene.characters() {
|
for c in self.scene.characters() {
|
||||||
if true {
|
if true {
|
||||||
self.draw(c, view)?;
|
self.draw(c, view, window_size)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -274,19 +279,16 @@ impl Engine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Draw a drawable.
|
/// Draw a drawable.
|
||||||
pub fn draw<D: Drawable>(&self, drawable: &D, view: Bbox) -> Result<()> {
|
pub fn draw<D: Drawable>(&self, drawable: &D, view: Bbox, window: Vector) -> Result<()> {
|
||||||
let window_width = unwrap!(self.window.inner_width()?.as_f64());
|
|
||||||
let window_height = unwrap!(self.window.inner_height()?.as_f64());
|
|
||||||
|
|
||||||
let image = self.textures.get(drawable.texture());
|
let image = self.textures.get(drawable.texture());
|
||||||
|
|
||||||
let source = drawable.texture_rect(self.after_loop);
|
let source = drawable.texture_rect(self.after_loop);
|
||||||
let mut dest = source.clone();
|
let mut dest = source.clone();
|
||||||
dest.position = drawable.position() - view.position;
|
dest.position = drawable.position() - view.position;
|
||||||
dest.position.x *= window_width / view.size.x;
|
dest.position.x *= window.x / view.size.x;
|
||||||
dest.position.y *= window_height / view.size.y;
|
dest.position.y *= window.y / view.size.y;
|
||||||
dest.size.x *= window_width / view.size.x;
|
dest.size.x *= window.x / view.size.x;
|
||||||
dest.size.y *= window_height / view.size.y;
|
dest.size.y *= window.y / view.size.y;
|
||||||
|
|
||||||
image.render(source, dest, &self.context)?;
|
image.render(source, dest, &self.context)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user