Skip to content

Commit 6b13ee8

Browse files
committed
0.9 builds, but sometimes freezes or segfaults
1 parent 6ca7777 commit 6b13ee8

24 files changed

+117
-66
lines changed

examples/collider.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use std::path::PathBuf;
1616

1717
use rusty_engine::prelude::*;
1818

19+
#[derive(Resource)]
1920
struct GameState {
2021
circle_radius: f32,
2122
scale: f32,

examples/collision.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ use rusty_engine::prelude::*;
66

77
const ROTATION_SPEED: f32 = 3.0;
88

9+
#[derive(Resource)]
10+
struct GameState {}
11+
912
fn main() {
1013
let mut game = Game::new();
1114
let msg2 = game.add_text(
@@ -15,7 +18,7 @@ fn main() {
1518
msg2.font_size = 20.0;
1619
msg2.translation.y = 340.0;
1720

18-
let mut race_car = game.add_sprite("Player", SpritePreset::RacingCarGreen);
21+
let race_car = game.add_sprite("Player", SpritePreset::RacingCarGreen);
1922
race_car.translation = Vec2::new(0.0, 0.0);
2023
race_car.rotation = UP;
2124
race_car.layer = 100.0;
@@ -28,20 +31,20 @@ fn main() {
2831
break 'outer;
2932
}
3033
let sprite_preset = sprite_presets_iter.next().unwrap();
31-
let mut sprite = game.add_sprite(format!("{:?}", sprite_preset), sprite_preset);
34+
let sprite = game.add_sprite(format!("{:?}", sprite_preset), sprite_preset);
3235
sprite.translation = Vec2::new(x as f32, (-y) as f32);
3336
sprite.collision = true;
3437
}
3538
}
3639

37-
let mut text = game.add_text("collision text", "");
40+
let text = game.add_text("collision text", "");
3841
text.translation = Vec2::new(0.0, -200.0);
3942

4043
game.add_logic(logic);
41-
game.run(());
44+
game.run(GameState {});
4245
}
4346

44-
fn logic(engine: &mut Engine, _: &mut ()) {
47+
fn logic(engine: &mut Engine, _: &mut GameState) {
4548
// If a collision event happened last frame, print it out and play a sound
4649
for collision_event in engine.collision_events.drain(..) {
4750
let text = engine.texts.get_mut("collision text").unwrap();

examples/game_state.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use rusty_engine::prelude::*;
88

99
// You can name your game state struct whatever you want, and it can contain many different types as
1010
// its fields
11+
#[derive(Resource)]
1112
struct MyCustomGameStateStuff {
1213
// Use a timer to tell when to start/stop turning
1314
change_timer: Timer,
@@ -20,7 +21,7 @@ fn main() {
2021
let _ = game.add_sprite("Race Car", SpritePreset::RacingCarGreen);
2122

2223
let initial_game_state = MyCustomGameStateStuff {
23-
change_timer: Timer::from_seconds(1.0, true),
24+
change_timer: Timer::from_seconds(1.0, TimerMode::Repeating),
2425
turning: false,
2526
};
2627

examples/keyboard_events.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
55
use rusty_engine::prelude::*;
66

7+
#[derive(Resource)]
8+
struct GameState {}
9+
710
fn main() {
811
let mut game = Game::new();
912

10-
let mut race_car = game.add_sprite("Race Car", SpritePreset::RacingCarGreen);
13+
let race_car = game.add_sprite("Race Car", SpritePreset::RacingCarGreen);
1114
race_car.translation = Vec2::new(0.0, 0.0);
1215
race_car.rotation = UP;
1316
race_car.scale = 1.0;
@@ -17,15 +20,15 @@ fn main() {
1720
text.translation.y = 250.0;
1821

1922
game.add_logic(logic);
20-
game.run(());
23+
game.run(GameState {});
2124
}
2225

23-
fn logic(game_state: &mut Engine, _: &mut ()) {
26+
fn logic(engine: &mut Engine, _: &mut GameState) {
2427
// Get the race car sprite
25-
let race_car = game_state.sprites.get_mut("Race Car").unwrap();
28+
let race_car = engine.sprites.get_mut("Race Car").unwrap();
2629

2730
// Loop through any keyboard input that hasn't been processed this frame
28-
for keyboard_event in &game_state.keyboard_events {
31+
for keyboard_event in &engine.keyboard_events {
2932
if let KeyboardInput {
3033
scan_code: _,
3134
key_code: Some(key_code),
@@ -50,8 +53,8 @@ fn logic(game_state: &mut Engine, _: &mut ()) {
5053

5154
// Clamp the translation so that the car stays on the screen
5255
race_car.translation = race_car.translation.clamp(
53-
-game_state.window_dimensions * 0.5,
54-
game_state.window_dimensions * 0.5,
56+
-engine.window_dimensions * 0.5,
57+
engine.window_dimensions * 0.5,
5558
);
5659
}
5760
}

examples/keyboard_state.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ use std::f32::consts::PI;
66

77
use rusty_engine::prelude::*;
88

9+
#[derive(Resource)]
10+
struct GameState {}
11+
912
fn main() {
1013
let mut game = Game::new();
1114

12-
let mut race_car = game.add_sprite("Race Car", SpritePreset::RacingCarGreen);
15+
let race_car = game.add_sprite("Race Car", SpritePreset::RacingCarGreen);
1316
race_car.translation = Vec2::new(0.0, 0.0);
1417
race_car.rotation = UP;
1518
race_car.scale = 1.0;
@@ -19,20 +22,20 @@ fn main() {
1922
text.translation.y = 250.0;
2023

2124
game.add_logic(logic);
22-
game.run(());
25+
game.run(GameState {});
2326
}
2427

25-
fn logic(game_state: &mut Engine, _: &mut ()) {
28+
fn logic(engine: &mut Engine, _: &mut GameState) {
2629
// Compute how fast we should move, rotate, and scale
27-
let move_amount = 200.0 * game_state.delta_f32;
28-
let rotation_amount = PI * game_state.delta_f32;
29-
let scale_amount = 1.0 * game_state.delta_f32;
30+
let move_amount = 200.0 * engine.delta_f32;
31+
let rotation_amount = PI * engine.delta_f32;
32+
let scale_amount = 1.0 * engine.delta_f32;
3033

3134
// Get the race car sprite
32-
let race_car = game_state.sprites.get_mut("Race Car").unwrap();
35+
let race_car = engine.sprites.get_mut("Race Car").unwrap();
3336

3437
// Handle keyboard input
35-
let ks = &mut game_state.keyboard_state;
38+
let ks = &mut engine.keyboard_state;
3639
if ks.pressed_any(&[KeyCode::W, KeyCode::Up, KeyCode::Comma]) {
3740
race_car.translation.y += move_amount;
3841
}
@@ -67,7 +70,7 @@ fn logic(game_state: &mut Engine, _: &mut ()) {
6770

6871
// Clamp the translation so that the car stays on the screen
6972
race_car.translation = race_car.translation.clamp(
70-
-game_state.window_dimensions * 0.5,
71-
game_state.window_dimensions * 0.5,
73+
-engine.window_dimensions * 0.5,
74+
engine.window_dimensions * 0.5,
7275
);
7376
}

examples/layer.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,21 @@
44
55
use rusty_engine::prelude::*;
66

7+
#[derive(Resource)]
8+
struct GameState {}
9+
710
fn main() {
811
let mut game = Game::new();
912

1013
let mut layer = 0.0;
1114
let preset_iterator = SpritePreset::variant_iter().peekable();
1215
for (x, sprite_preset) in (-300..=600).step_by(30).zip(preset_iterator) {
13-
let mut sprite = game.add_sprite(format!("{:?}", sprite_preset), sprite_preset);
16+
let sprite = game.add_sprite(format!("{:?}", sprite_preset), sprite_preset);
1417
sprite.translation = Vec2::new(x as f32, (-x) as f32);
1518
sprite.layer = layer; // 0.0 is the bottom (back) layer. 999.0 is the top (front) layer.
1619
layer += 1.0;
1720
}
1821

1922
// We don't do anything after game setup, so our game logic can be an empty closure
20-
game.run(());
23+
game.run(GameState {});
2124
}

examples/level_creator.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
1313
use rusty_engine::prelude::*;
1414

15+
#[derive(Resource)]
1516
struct GameState {
1617
current_label: String,
1718
// Use an incrementing index (converted to a string) for the unique label of the sprites
@@ -77,7 +78,7 @@ Z - Print out Rust code of current level
7778
let game_state = GameState::default();
7879

7980
// Get our first sprite onto the board
80-
let mut curr_sprite = game.add_sprite("0".to_string(), SpritePreset::RacingCarRed);
81+
let curr_sprite = game.add_sprite("0".to_string(), SpritePreset::RacingCarRed);
8182
//curr_sprite.scale = 0.5;
8283
curr_sprite.layer = MAX_LAYER;
8384

examples/mouse_events.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ use rusty_engine::prelude::*;
66

77
const ORIGIN_LOCATION: (f32, f32) = (0.0, -200.0);
88

9+
#[derive(Resource)]
10+
struct GameState {}
11+
912
fn main() {
1013
let mut game = Game::new();
1114

@@ -35,10 +38,10 @@ fn main() {
3538
msg2.translation.y = 275.0;
3639

3740
game.add_logic(logic);
38-
game.run(());
41+
game.run(GameState {});
3942
}
4043

41-
fn logic(engine: &mut Engine, _: &mut ()) {
44+
fn logic(engine: &mut Engine, _: &mut GameState) {
4245
if let Some(sprite) = engine.sprites.get_mut("Race Car") {
4346
// Use mouse button events to rotate. Every click rotates the sprite by a fixed amount
4447
for mouse_button_input in &engine.mouse_button_events {

examples/mouse_state.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ use rusty_engine::prelude::*;
77
const ORIGIN_LOCATION: (f32, f32) = (0.0, -200.0);
88
const ROTATION_SPEED: f32 = 3.0;
99

10+
#[derive(Resource)]
11+
struct GameState {}
12+
1013
fn main() {
1114
let mut game = Game::new();
1215

@@ -36,10 +39,10 @@ fn main() {
3639
msg2.translation.y = 275.0;
3740

3841
game.add_logic(logic);
39-
game.run(());
42+
game.run(GameState {});
4043
}
4144

42-
fn logic(engine: &mut Engine, _: &mut ()) {
45+
fn logic(engine: &mut Engine, _: &mut GameState) {
4346
if let Some(sprite) = engine.sprites.get_mut("Race Car") {
4447
// Use the latest state of the mouse buttons to rotate the sprite
4548
let mut rotation_amount = 0.0;

examples/music.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
88
use rusty_engine::prelude::*;
99

10+
#[derive(Resource)]
11+
struct GameState {}
12+
1013
fn main() {
1114
let mut game = Game::new();
1215
let msg = game.add_text(
@@ -24,5 +27,5 @@ fn main() {
2427

2528
game.audio_manager.play_music(MusicPreset::Classy8Bit, 1.0);
2629

27-
game.run(());
30+
game.run(GameState {});
2831
}

0 commit comments

Comments
 (0)