Dolda2000 GitWeb
/
kaka
/
rust-sdl-test.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Removed global use of SCREEN_WIDTH/HEIGHT
[kaka/rust-sdl-test.git]
/
src
/
game
/
app.rs
diff --git
a/src/game/app.rs
b/src/game/app.rs
index
0ec34ee
..
3e11b5d
100644
(file)
--- a/
src/game/app.rs
+++ b/
src/game/app.rs
@@
-16,7
+16,6
@@
use sdl2::{EventPump, VideoSubsystem};
use sprites::SpriteManager;
use std::f32::consts::PI;
use time::PreciseTime;
use sprites::SpriteManager;
use std::f32::consts::PI;
use time::PreciseTime;
-use {SCREEN_HEIGHT, SCREEN_WIDTH};
pub type Nanoseconds = u64;
pub type Nanoseconds = u64;
@@
-77,12
+76,13
@@
impl AppBuilder {
let event_pump = context.event_pump()?;
let sprites = SpriteManager::new(canvas.texture_creator());
let event_pump = context.event_pump()?;
let sprites = SpriteManager::new(canvas.texture_creator());
+ let screen = canvas.output_size().unwrap();
Ok(App {
canvas,
event_pump,
sprites,
Ok(App {
canvas,
event_pump,
sprites,
- state: self.state.unwrap_or_else(|| Box::new(ActiveState::new())),
+ state: self.state.unwrap_or_else(|| Box::new(ActiveState::new(
screen
))),
})
}
})
}
@@
-146,6
+146,8
@@
impl App {
let mut frame_count: u64 = 0;
let mut fps_time = PreciseTime::now();
let mut last_time = PreciseTime::now();
let mut frame_count: u64 = 0;
let mut fps_time = PreciseTime::now();
let mut last_time = PreciseTime::now();
+ let screen = self.canvas.output_size().unwrap();
+ let screen = Rect::from((screen.0 as i32, screen.1 as i32));
let mut mario_angle = 0.0;
let mut mario_angle = 0.0;
@@
-156,8
+158,8
@@
impl App {
let blocks = 20;
let size = 32;
let offset = point!(
let blocks = 20;
let size = 32;
let offset = point!(
- (
SCREEN_WIDTH as i32
- (blocks + 1) * size) / 2,
- (
SCREEN_HEIGHT as i32
- (blocks + 1) * size) / 2
+ (
screen.width
- (blocks + 1) * size) / 2,
+ (
screen.height
- (blocks + 1) * size) / 2
);
let block = self.sprites.get("block");
for i in 0..blocks {
);
let block = self.sprites.get("block");
for i in 0..blocks {
@@
-209,8
+211,8
@@
impl App {
{
let size = 64;
let offset = point!(
{
let size = 64;
let offset = point!(
- (
SCREEN_WIDTH as i32
- size) / 2,
- (
SCREEN_HEIGHT as i32
- size) / 2
+ (
screen.width
- size) / 2,
+ (
screen.height
- size) / 2
);
let radius = 110.0 + size as f32 * 0.5;
let angle = (mario_angle as f32 - 90.0) * PI / 180.0;
);
let radius = 110.0 + size as f32 * 0.5;
let angle = (mario_angle as f32 - 90.0) * PI / 180.0;
@@
-237,7
+239,7
@@
impl App {
}
}
{
}
}
{
- let p = point!((
SCREEN_WIDTH / 2) as i16, (SCREEN_HEIGHT
/ 2) as i16);
+ let p = point!((
screen.width / 2) as i16, (screen.height
/ 2) as i16);
self.canvas
.circle(p.x, p.y, 100, Color::RGB(255, 255, 255))
.unwrap();
self.canvas
.circle(p.x, p.y, 100, Color::RGB(255, 255, 255))
.unwrap();
@@
-352,15
+354,17
@@
pub trait AppState {
type Bollar = Vec<Box<dyn Boll>>;
pub struct ActiveState {
type Bollar = Vec<Box<dyn Boll>>;
pub struct ActiveState {
+ screen: Rect<u32>,
bolls: Bollar,
boll_size: u32,
}
impl ActiveState {
bolls: Bollar,
boll_size: u32,
}
impl ActiveState {
- pub fn new() -> ActiveState {
+ pub fn new(
screen: (u32, u32)
) -> ActiveState {
ActiveState {
bolls: Bollar::new(),
boll_size: 1,
ActiveState {
bolls: Bollar::new(),
boll_size: 1,
+ screen: Rect::from(screen),
}
}
}
}
@@
-381,8
+385,8
@@
impl ActiveState {
let mut rng = rand::thread_rng();
self.bolls.push(Box::new(SquareBoll {
pos: point!(
let mut rng = rand::thread_rng();
self.bolls.push(Box::new(SquareBoll {
pos: point!(
- rng.gen_range(0,
SCREEN_WIDTH
) as f64,
- rng.gen_range(0,
SCREEN_HEIGHT
) as f64
+ rng.gen_range(0,
self.screen.width
) as f64,
+ rng.gen_range(0,
self.screen.height
) as f64
),
vel: point!(rng.gen_range(-2.0, 2.0), rng.gen_range(-2.0, 2.0)),
}));
),
vel: point!(rng.gen_range(-2.0, 2.0), rng.gen_range(-2.0, 2.0)),
}));