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
Mark the current display modes
[kaka/rust-sdl-test.git]
/
src
/
game
/
app.rs
diff --git
a/src/game/app.rs
b/src/game/app.rs
index
4e0f97b
..
88f8e88
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
(Box::new(ActiveState::new(
))),
+ state: self.state.unwrap_or
_else(|| Box::new(ActiveState::new(screen
))),
})
}
})
}
@@
-107,15
+107,18
@@
impl AppBuilder {
" desktop_display_mode: {:?}",
video.desktop_display_mode(display).unwrap()
);
" desktop_display_mode: {:?}",
video.desktop_display_mode(display).unwrap()
);
+ let current = video.current_display_mode(display).unwrap();
println!(
" current_display_mode: {:?}",
println!(
" current_display_mode: {:?}",
- video.current_display_mode(display).unwrap()
+ current
);
);
- for mode in 0..video.num_display_modes(display).unwrap() {
+ for idx in 0..video.num_display_modes(display).unwrap() {
+ let mode = video.display_mode(display, idx).unwrap();
println!(
println!(
- " {:2}: {:?}",
- mode,
- video.display_mode(display, mode).unwrap()
+ " {}{:2}: {:?}",
+ if mode == current { "*" } else { " " },
+ idx,
+ mode
);
}
}
);
}
}
@@
-131,6
+134,7
@@
pub struct App {
}
impl App {
}
impl App {
+ #[allow(clippy::new_ret_no_self)]
pub fn new() -> AppBuilder {
Default::default()
}
pub fn new() -> AppBuilder {
Default::default()
}
@@
-145,6
+149,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;
@@
-155,8
+161,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 {
@@
-208,8
+214,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;
@@
-236,7
+242,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();
@@
-351,19
+357,22
@@
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),
}
}
fn change_boll_count(&mut self, delta: i32) {
}
}
fn change_boll_count(&mut self, delta: i32) {
+ #[allow(clippy::comparison_chain)]
if delta > 0 {
for _i in 0..delta {
self.add_boll();
if delta > 0 {
for _i in 0..delta {
self.add_boll();
@@
-379,8
+388,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)),
}));