Mercurial repo for silny-kombat project
Revision | 15c51e4f3af5ebc544193be016926a2a98470abb (tree) |
---|---|
Time | 2021-10-20 03:27:08 |
Author | SecT |
Commiter | SecT |
Refactoring - move counter to character sprite struct
@@ -81,6 +81,7 @@ | ||
81 | 81 | |
82 | 82 | let mut character_A: Character = Character ::new("Sub Zero", &textures); |
83 | 83 | let mut character_B: Character = Character ::new("Sub Zero", &textures); |
84 | + | |
84 | 85 | println!("{} vs {}", character_A.get_name(), character_B.get_name()); |
85 | 86 | //let mut state = 0; |
86 | 87 | //let mut state_b = 0; |
@@ -89,7 +90,6 @@ | ||
89 | 90 | character_B.char_sprite.sprite.set_scale(Vector2f::new(-1.0, 1.0)); |
90 | 91 | |
91 | 92 | //loop |
92 | - let mut counter = 0; | |
93 | 93 | |
94 | 94 | //let &mut mut stateReference: &mut i32; |
95 | 95 |
@@ -119,9 +119,6 @@ | ||
119 | 119 | process_key_result_for_character(&key_processor, &mut character_B, key_result); |
120 | 120 | } |
121 | 121 | |
122 | - if key_result == 3 { | |
123 | - counter = 0; | |
124 | - } | |
125 | 122 | |
126 | 123 | // //first char///////////// |
127 | 124 | // if key_result == 3 { |
@@ -141,18 +138,11 @@ | ||
141 | 138 | } |
142 | 139 | |
143 | 140 | |
144 | - counter = counter + 1; | |
145 | - | |
146 | - if counter > 20000 | |
147 | - { | |
148 | - counter = 0; | |
149 | - } | |
150 | - | |
151 | 141 | //character_A.char_sprite.show_sprite(state, counter); |
152 | 142 | //character_B.char_sprite.show_sprite(state_b, counter); |
153 | 143 | |
154 | - character_A.char_sprite.show_sprite(character_A.get_num_state(), counter); | |
155 | - character_B.char_sprite.show_sprite(character_B.get_num_state(), counter); | |
144 | + character_A.char_sprite.show_sprite(character_A.get_num_state()); | |
145 | + character_B.char_sprite.show_sprite(character_B.get_num_state()); | |
156 | 146 | |
157 | 147 | window.clear(Color::rgb(50, 200, 50)); |
158 | 148 | window.draw(&character_A.char_sprite.sprite); |
@@ -10,7 +10,9 @@ | ||
10 | 10 | pub struct CharacterSprite<'a> { |
11 | 11 | //sprite : 'a mut Sprite<'a> |
12 | 12 | pub sprite : Sprite<'a>, |
13 | - textures: &'a [&'a SfBox<Texture>] | |
13 | + textures: &'a [&'a SfBox<Texture>], | |
14 | + counter: i32, | |
15 | + currentState:i32 | |
14 | 16 | } |
15 | 17 | impl<'a> CharacterSprite<'a>{ |
16 | 18 | //fn new(new_sprite: &'a Sprite) -> Self{ |
@@ -19,7 +21,9 @@ | ||
19 | 21 | let sprite = Sprite::new(); |
20 | 22 | CharacterSprite{ |
21 | 23 | sprite, |
22 | - textures | |
24 | + textures, | |
25 | + counter: 0, | |
26 | + currentState: -1 | |
23 | 27 | } |
24 | 28 | } |
25 | 29 |
@@ -33,40 +37,53 @@ | ||
33 | 37 | self.sprite.move_(v); |
34 | 38 | } |
35 | 39 | |
36 | - pub fn show_sprite(&mut self, state: i32, counter: i32) { | |
40 | + pub fn show_sprite(&mut self, state: i32) { | |
41 | + | |
42 | + if state != self.currentState{ | |
43 | + self.counter = 0; | |
44 | + self.currentState = state; | |
45 | + } | |
46 | + | |
37 | 47 | if state == 0 |
38 | 48 | { |
39 | - if counter % 10 == 0 | |
49 | + if self.counter % 10 == 0 | |
40 | 50 | { |
41 | 51 | self.sprite.set_texture(&self.textures[1], true); |
42 | 52 | } |
43 | - if counter % 20 == 0 | |
53 | + if self.counter % 20 == 0 | |
44 | 54 | { |
45 | 55 | self.sprite.set_texture(&self.textures[0], true); |
46 | 56 | } |
47 | 57 | } else if state == 1 |
48 | 58 | { |
49 | 59 | self.move_right(); |
50 | - if counter % 10 == 0 | |
60 | + if self.counter % 10 == 0 | |
51 | 61 | { |
52 | 62 | self.sprite.set_texture(&self.textures[2], true); |
53 | 63 | } |
54 | - if counter % 20 == 0 | |
64 | + if self.counter % 20 == 0 | |
55 | 65 | { |
56 | 66 | self.sprite.set_texture(&self.textures[3], true); |
57 | 67 | } |
58 | 68 | } else if state == 2 |
59 | 69 | { |
60 | 70 | self.move_left(); |
61 | - if counter % 10 == 0 | |
71 | + if self.counter % 10 == 0 | |
62 | 72 | { |
63 | 73 | self.sprite.set_texture(&self.textures[3], true); |
64 | 74 | } |
65 | - if counter % 20 == 0 | |
75 | + if self.counter % 20 == 0 | |
66 | 76 | { |
67 | 77 | self.sprite.set_texture(&self.textures[2], true); |
68 | 78 | } |
69 | 79 | } |
80 | + | |
81 | + self.counter = self.counter + 1; | |
82 | + | |
83 | + if self.counter > 20000 | |
84 | + { | |
85 | + self.counter = 0; | |
86 | + } | |
70 | 87 | } |
71 | 88 | } |
72 | 89 |