Mercurial repo for silny-kombat project
Révision | 7c678169802f49ab0dd4567480d180bb98fcc0c2 (tree) |
---|---|
l'heure | 2022-10-07 03:34:25 |
Auteur | Piotr Kozka <piotoor@gmai...> |
Commiter | Piotr Kozka |
Fixed window events
@@ -1,7 +1,5 @@ | ||
1 | 1 | use crate::character_state_machine; |
2 | 2 | use crate::sprite_rendering; |
3 | - | |
4 | -use crate::key_processing::SignalForSM; | |
5 | 3 | use rust_fsm::TransitionImpossibleError; |
6 | 4 | |
7 | 5 | use sfml::{ |
@@ -16,12 +16,12 @@ | ||
16 | 16 | graphics::{ |
17 | 17 | Color, Transformable, Texture, RenderWindow, RenderTarget |
18 | 18 | }, |
19 | - window::{ ContextSettings, Style}, | |
19 | + window::{ ContextSettings, Style, event}, | |
20 | 20 | system::Vector2f, |
21 | 21 | SfBox |
22 | 22 | }; |
23 | 23 | use crate::key_processing::{KeyProcessor, SignalForSM, KeyEvents}; |
24 | -use sfml::window::Key; | |
24 | +use sfml::window::{Event, Key}; | |
25 | 25 | |
26 | 26 | pub struct Controller<'a> { |
27 | 27 | character_a : Option<&'a Character<'a>>, |
@@ -84,9 +84,14 @@ | ||
84 | 84 | //loop |
85 | 85 | |
86 | 86 | //let &mut mut stateReference: &mut i32; |
87 | + while window.is_open() { | |
88 | + for event in window.poll_event() { | |
89 | + match event { | |
90 | + Event::Closed => window.close(), | |
91 | + _ => {/* do nothing */} | |
92 | + } | |
93 | + } | |
87 | 94 | |
88 | - | |
89 | - loop { | |
90 | 95 | let mut output_a: Result<Option<character_state_machine::CharacterFSMOutput>, TransitionImpossibleError> = character_a.trigger(character_state_machine::CharacterFSMInput::Released); |
91 | 96 | let mut output_b: Result<Option<character_state_machine::CharacterFSMOutput>, TransitionImpossibleError> = character_b.trigger(character_state_machine::CharacterFSMInput::Released); |
92 | 97 | //let mut key_result = key_processor.match_key(); |
@@ -1,25 +1,23 @@ | ||
1 | 1 | use sfml::{ |
2 | - window::{ Event, Key}, | |
3 | - | |
4 | - | |
2 | + window::{Event, Key}, | |
5 | 3 | }; |
6 | 4 | |
7 | 5 | use crate::key_processing::KeyEvents::{CharLeft, CharRight, CharKeyRelease}; |
8 | 6 | |
9 | 7 | //use crate::sprite_rendering; |
10 | 8 | |
11 | -pub const KEY_BASE : i32 = 10; | |
9 | +// pub const KEY_BASE : i32 = 10; | |
12 | 10 | |
13 | 11 | pub enum KeyEvents { |
14 | - None = -1, | |
15 | - Escape, | |
12 | + //None = -1, | |
13 | + //Escape, | |
16 | 14 | CharLeft, |
17 | 15 | CharRight, |
18 | 16 | CharKeyRelease, |
19 | 17 | CharBLeft = 11, |
20 | 18 | CharBRight = 12, |
21 | - CharBKeyRelease = 13, | |
22 | - KeyTesting = 99 | |
19 | + //CharBKeyRelease = 13, | |
20 | + //KeyTesting = 99 | |
23 | 21 | } |
24 | 22 | |
25 | 23 | pub enum SignalForSM { |
@@ -36,7 +34,7 @@ | ||
36 | 34 | |
37 | 35 | impl KeyProcessor { |
38 | 36 | |
39 | - pub const KEY_BASE : i32 = 10; | |
37 | + // pub const KEY_BASE : i32 = 10; | |
40 | 38 | |
41 | 39 | //fn new(new_sprite: &'a Sprite) -> Self{ |
42 | 40 | //pub fn new(new_sprite: &'a mut Sprite<'a>) -> Self{ |
@@ -52,43 +50,43 @@ | ||
52 | 50 | CharLeft => SignalForSM::MoveToLeft, |
53 | 51 | CharRight => SignalForSM::MoveToRight, |
54 | 52 | |
55 | - _ => { SignalForSM::None } | |
53 | + //_ => { SignalForSM::None } | |
56 | 54 | } |
57 | 55 | } |
58 | 56 | |
59 | 57 | |
60 | 58 | |
61 | - pub fn match_key(&self) -> KeyEvents { | |
62 | - | |
63 | - //TODO: refactor enum->i32 conversions, just return a enum | |
64 | - //TODO: refactor enum->i32 conversions, just return a enum | |
65 | - if Key::A.is_pressed() | |
66 | - { | |
67 | - return KeyEvents::CharBLeft; | |
68 | - } | |
69 | - if Key::D.is_pressed() | |
70 | - { | |
71 | - return KeyEvents::CharBRight; | |
72 | - } | |
73 | - if Key::F4.is_pressed() | |
74 | - { | |
75 | - return KeyEvents::KeyTesting; | |
76 | - } | |
77 | - if Key::ESCAPE.is_pressed() | |
78 | - { | |
79 | - return KeyEvents::Escape; | |
80 | - } | |
81 | - if Key::LEFT.is_pressed() | |
82 | - { | |
83 | - return CharLeft; | |
84 | - } | |
85 | - if Key::RIGHT.is_pressed() | |
86 | - { | |
87 | - return CharRight; | |
88 | - } | |
89 | - | |
90 | - return KeyEvents::None; | |
91 | - } | |
59 | + // pub fn match_key(&self) -> KeyEvents { | |
60 | + // | |
61 | + // //TODO: refactor enum->i32 conversions, just return a enum | |
62 | + // //TODO: refactor enum->i32 conversions, just return a enum | |
63 | + // if Key::A.is_pressed() | |
64 | + // { | |
65 | + // return KeyEvents::CharBLeft; | |
66 | + // } | |
67 | + // if Key::D.is_pressed() | |
68 | + // { | |
69 | + // return KeyEvents::CharBRight; | |
70 | + // } | |
71 | + // if Key::F4.is_pressed() | |
72 | + // { | |
73 | + // return KeyEvents::KeyTesting; | |
74 | + // } | |
75 | + // if Key::ESCAPE.is_pressed() | |
76 | + // { | |
77 | + // return KeyEvents::Escape; | |
78 | + // } | |
79 | + // if Key::LEFT.is_pressed() | |
80 | + // { | |
81 | + // return CharLeft; | |
82 | + // } | |
83 | + // if Key::RIGHT.is_pressed() | |
84 | + // { | |
85 | + // return CharRight; | |
86 | + // } | |
87 | + // | |
88 | + // return KeyEvents::None; | |
89 | + // } | |
92 | 90 | |
93 | 91 | |
94 | 92 | } |
\ No newline at end of file |