Mercurial repo for silny-kombat project
修订版 | 809e1cf0fc4f8e7af42e9937e2315b5ca2c9bca4 (tree) |
---|---|
时间 | 2021-04-14 02:25:45 |
作者 | SecT |
Commiter | SecT |
Refactoring, renaming
@@ -1,45 +0,0 @@ | ||
1 | -use sfml::{ | |
2 | - graphics::{ | |
3 | - Sprite | |
4 | - }, | |
5 | - window::{ Event, Key}, | |
6 | - | |
7 | -}; | |
8 | - | |
9 | -use crate::spriteRendering; | |
10 | - | |
11 | -pub fn process_key(mut sprite: &mut Sprite, key_result: i32, mut state: &mut i32) { | |
12 | - if key_result == 1 | |
13 | - { | |
14 | - *state = 1; | |
15 | - | |
16 | - spriteRendering::move_right(&mut sprite); | |
17 | - } else if key_result == 2 | |
18 | - { | |
19 | - *state = 2; | |
20 | - spriteRendering::move_left(&mut sprite); | |
21 | - } | |
22 | -} | |
23 | - | |
24 | -pub fn match_key(event: Event) -> i32 { | |
25 | - match event { | |
26 | - Event::Closed | |
27 | - | Event::KeyPressed { | |
28 | - code: Key::ESCAPE, .. | |
29 | - } => return 0, | |
30 | - Event::KeyPressed { | |
31 | - code: Key::RIGHT, .. | |
32 | - } => return 1, | |
33 | - Event::KeyPressed { | |
34 | - code: Key::LEFT, .. | |
35 | - } => return 2, | |
36 | - Event::KeyReleased { | |
37 | - code:Key::RIGHT, .. | |
38 | - } => return 3, | |
39 | - Event::KeyReleased { | |
40 | - code:Key::LEFT, .. | |
41 | - } => return 3, | |
42 | - _ => {} | |
43 | - } | |
44 | - return -1; | |
45 | -} |
@@ -0,0 +1,54 @@ | ||
1 | +use sfml::{ | |
2 | + graphics::{ | |
3 | + Sprite | |
4 | + }, | |
5 | + window::{ Event, Key}, | |
6 | + | |
7 | +}; | |
8 | + | |
9 | +use crate::sprite_rendering; | |
10 | + | |
11 | +pub fn process_key(mut sprite: &mut Sprite, key_result: i32, state: &mut i32) { | |
12 | + if key_result == 1 | |
13 | + { | |
14 | + *state = 1; | |
15 | + | |
16 | + sprite_rendering::move_right(&mut sprite); | |
17 | + } else if key_result == 2 | |
18 | + { | |
19 | + *state = 2; | |
20 | + sprite_rendering::move_left(&mut sprite); | |
21 | + } | |
22 | + else if key_result == 4 | |
23 | + { | |
24 | + *state = 2; | |
25 | + sprite_rendering::move_left(&mut sprite); | |
26 | + } | |
27 | +} | |
28 | + | |
29 | +pub fn match_key(event: Event) -> i32 { | |
30 | + match event { | |
31 | + Event::Closed | |
32 | + | Event::KeyPressed { | |
33 | + code: Key::ESCAPE, .. | |
34 | + } => return 0, | |
35 | + Event::KeyPressed { | |
36 | + code: Key::RIGHT, .. | |
37 | + } => return 1, | |
38 | + Event::KeyPressed { | |
39 | + code: Key::LEFT, .. | |
40 | + } => return 2, | |
41 | + Event::KeyReleased { | |
42 | + code:Key::RIGHT, .. | |
43 | + } => return 3, | |
44 | + Event::KeyReleased { | |
45 | + code:Key::LEFT, .. | |
46 | + } => return 3, | |
47 | + | |
48 | + Event::KeyPressed { | |
49 | + code: Key::A, .. //move left for second character | |
50 | + } => return 4, | |
51 | + _ => {} | |
52 | + } | |
53 | + return -1; | |
54 | +} |
@@ -2,14 +2,14 @@ | ||
2 | 2 | graphics::{ |
3 | 3 | Color, RenderTarget, RenderWindow, Transformable, Sprite,Texture |
4 | 4 | }, |
5 | - window::{ ContextSettings, Event, Style, Key}, | |
5 | + window::{ ContextSettings, Style}, | |
6 | 6 | system::Vector2f, |
7 | 7 | SfBox |
8 | 8 | }; |
9 | 9 | |
10 | -mod stateMachine; | |
11 | -mod spriteRendering; | |
12 | -mod keyProcessing; | |
10 | +mod state_machine; | |
11 | +mod sprite_rendering; | |
12 | +mod key_processing; | |
13 | 13 | |
14 | 14 | fn main() { |
15 | 15 | println!("Hello, world!"); |
@@ -20,28 +20,28 @@ | ||
20 | 20 | //Player A |
21 | 21 | let fighter = Texture::from_file("sprites//sub_zero//01.gif").unwrap(); |
22 | 22 | let fighter2 = Texture::from_file("sprites//sub_zero//02.gif").unwrap(); |
23 | - let fighterWalk0 = Texture::from_file("sprites//sub_zero//a01.gif").unwrap(); | |
24 | - let fighterWalk1 = Texture::from_file("sprites//sub_zero//a03.gif").unwrap(); | |
23 | + let fighter_walk0 = Texture::from_file("sprites//sub_zero//a01.gif").unwrap(); | |
24 | + let fighter_walk1 = Texture::from_file("sprites//sub_zero//a03.gif").unwrap(); | |
25 | 25 | |
26 | 26 | //Player B |
27 | - let fighterB = Texture::from_file("sprites//sub_zero//01.gif").unwrap(); | |
28 | - let fighterB2 = Texture::from_file("sprites//sub_zero//02.gif").unwrap(); | |
29 | - let fighterBWalk0 = Texture::from_file("sprites//sub_zero//a01.gif").unwrap(); | |
30 | - let fighterBWalk1 = Texture::from_file("sprites//sub_zero//a03.gif").unwrap(); | |
27 | + // let fighter_b = Texture::from_file("sprites//sub_zero//01.gif").unwrap(); | |
28 | + // let fighter_b2 = Texture::from_file("sprites//sub_zero//02.gif").unwrap(); | |
29 | + // let fighter_b_walk0 = Texture::from_file("sprites//sub_zero//a01.gif").unwrap(); | |
30 | + // let fighter_b_walk1 = Texture::from_file("sprites//sub_zero//a03.gif").unwrap(); | |
31 | 31 | |
32 | 32 | |
33 | - let textures: [&SfBox<Texture>; 4] = [&fighter, &fighter2, &fighterWalk0, &fighterWalk1]; | |
34 | - let texturesB: [&SfBox<Texture>; 4] = [&fighterB, &fighterB2, &fighterBWalk0, &fighterBWalk1]; | |
33 | + let textures: [&SfBox<Texture>; 4] = [&fighter, &fighter2, &fighter_walk0, &fighter_walk1]; | |
34 | +// let textures_b: [&SfBox<Texture>; 4] = [&fighter_b, &fighter_b2, &fighter_b_walk0, &fighter_b_walk1]; | |
35 | 35 | |
36 | 36 | |
37 | 37 | let mut sprite = Sprite::new(); |
38 | 38 | let mut state = 0; |
39 | 39 | |
40 | - let mut spriteB = Sprite::new(); | |
41 | - let mut stateB = 0; | |
40 | + let mut sprite_b = Sprite::new(); | |
41 | + let mut state_b = 0; | |
42 | 42 | |
43 | - spriteB.set_position(Vector2f::new(600.0, 0.0)); | |
44 | - spriteB.set_scale(Vector2f::new(-1.0,1.0)); | |
43 | + sprite_b.set_position(Vector2f::new(600.0, 0.0)); | |
44 | + sprite_b.set_scale(Vector2f::new(-1.0, 1.0)); | |
45 | 45 | |
46 | 46 | //sprite.set_texture(&fighter, true); |
47 | 47 |
@@ -49,7 +49,7 @@ | ||
49 | 49 | |
50 | 50 | loop { |
51 | 51 | while let Some(event) = window.poll_event() { |
52 | - let key_result = keyProcessing::match_key(event); | |
52 | + let key_result = key_processing::match_key(event); | |
53 | 53 | if key_result == 0{ |
54 | 54 | //close program |
55 | 55 | return; |
@@ -58,8 +58,12 @@ | ||
58 | 58 | state = 0; |
59 | 59 | counter = 0; |
60 | 60 | } |
61 | - keyProcessing::process_key(&mut sprite, key_result, &mut state); | |
62 | - | |
61 | + if key_result == 1 || key_result == 2 || key_result == 3 { | |
62 | + key_processing::process_key(&mut sprite, key_result, &mut state); | |
63 | + } | |
64 | + else if key_result == 4 { | |
65 | + key_processing::process_key(&mut sprite_b, key_result, &mut state_b); | |
66 | + } | |
63 | 67 | } |
64 | 68 | |
65 | 69 |
@@ -72,12 +76,12 @@ | ||
72 | 76 | } |
73 | 77 | |
74 | 78 | |
75 | - spriteRendering::show_sprite2(&textures, &mut sprite, state, counter); | |
76 | - spriteRendering::show_sprite2(&textures, &mut spriteB, stateB, counter); | |
79 | + sprite_rendering::show_sprite2(&textures, &mut sprite, state, counter); | |
80 | + sprite_rendering::show_sprite2(&textures, &mut sprite_b, state_b, counter); | |
77 | 81 | |
78 | 82 | window.clear(Color::rgb(50, 200, 50)); |
79 | 83 | window.draw(&sprite); |
80 | - window.draw(&spriteB); | |
84 | + window.draw(&sprite_b); | |
81 | 85 | window.display(); |
82 | 86 | |
83 | 87 | } |
@@ -98,6 +102,7 @@ | ||
98 | 102 | Style::CLOSE, |
99 | 103 | &context_settings, |
100 | 104 | ); |
105 | + //window.set_key_repeat_enabled(false); | |
101 | 106 | window.set_vertical_sync_enabled(true); |
102 | 107 | window.set_framerate_limit(80); |
103 | 108 | window |
@@ -1,54 +0,0 @@ | ||
1 | - | |
2 | - use sfml::{ | |
3 | - graphics::{ | |
4 | - Transformable, Sprite, Texture | |
5 | - }, | |
6 | - system::Vector2f, | |
7 | - SfBox | |
8 | - }; | |
9 | - | |
10 | - | |
11 | - pub fn show_sprite2<'a>(textures: &'a [&SfBox<Texture>], mut sprite: &mut Sprite<'a>, state: i32, counter: i32) { | |
12 | - if state == 0 | |
13 | - { | |
14 | - if counter % 10 == 0 | |
15 | - { | |
16 | - sprite.set_texture(&textures[1], true); | |
17 | - } | |
18 | - if counter % 20 == 0 | |
19 | - { | |
20 | - sprite.set_texture(&textures[0], true); | |
21 | - } | |
22 | - } else if state == 1 | |
23 | - { | |
24 | - if counter % 10 == 0 | |
25 | - { | |
26 | - sprite.set_texture(&textures[2], true); | |
27 | - } | |
28 | - if counter % 20 == 0 | |
29 | - { | |
30 | - sprite.set_texture(&textures[3], true); | |
31 | - } | |
32 | - } else if state == 2 | |
33 | - { | |
34 | - if counter % 10 == 0 | |
35 | - { | |
36 | - sprite.set_texture(&textures[3], true); | |
37 | - } | |
38 | - if counter % 20 == 0 | |
39 | - { | |
40 | - sprite.set_texture(&textures[2], true); | |
41 | - } | |
42 | - } | |
43 | - } | |
44 | - | |
45 | - | |
46 | - pub fn move_left(sprite: &mut Sprite) { | |
47 | - let v = Vector2f::new(-1.0, 0.0); | |
48 | - sprite.move_(v); | |
49 | - } | |
50 | - | |
51 | - pub fn move_right(sprite: &mut Sprite) { | |
52 | - let v = Vector2f::new(1.0, 0.0); | |
53 | - sprite.move_(v); | |
54 | - } |
@@ -0,0 +1,54 @@ | ||
1 | + | |
2 | + use sfml::{ | |
3 | + graphics::{ | |
4 | + Transformable, Sprite, Texture | |
5 | + }, | |
6 | + system::Vector2f, | |
7 | + SfBox | |
8 | + }; | |
9 | + | |
10 | + | |
11 | + pub fn show_sprite2<'a>(textures: &'a [&SfBox<Texture>], sprite: &mut Sprite<'a>, state: i32, counter: i32) { | |
12 | + if state == 0 | |
13 | + { | |
14 | + if counter % 10 == 0 | |
15 | + { | |
16 | + sprite.set_texture(&textures[1], true); | |
17 | + } | |
18 | + if counter % 20 == 0 | |
19 | + { | |
20 | + sprite.set_texture(&textures[0], true); | |
21 | + } | |
22 | + } else if state == 1 | |
23 | + { | |
24 | + if counter % 10 == 0 | |
25 | + { | |
26 | + sprite.set_texture(&textures[2], true); | |
27 | + } | |
28 | + if counter % 20 == 0 | |
29 | + { | |
30 | + sprite.set_texture(&textures[3], true); | |
31 | + } | |
32 | + } else if state == 2 | |
33 | + { | |
34 | + if counter % 10 == 0 | |
35 | + { | |
36 | + sprite.set_texture(&textures[3], true); | |
37 | + } | |
38 | + if counter % 20 == 0 | |
39 | + { | |
40 | + sprite.set_texture(&textures[2], true); | |
41 | + } | |
42 | + } | |
43 | + } | |
44 | + | |
45 | + | |
46 | + pub fn move_left(sprite: &mut Sprite) { | |
47 | + let v = Vector2f::new(-1.0, 0.0); | |
48 | + sprite.move_(v); | |
49 | + } | |
50 | + | |
51 | + pub fn move_right(sprite: &mut Sprite) { | |
52 | + let v = Vector2f::new(1.0, 0.0); | |
53 | + sprite.move_(v); | |
54 | + } |