Mercurial repo for silny-kombat project
リビジョン | ce024c46d810fcb3f76ed798f8b5b03ad18599cd (tree) |
---|---|
日時 | 2022-09-22 03:28:08 |
作者 | SecT |
コミッター | SecT |
Collision checking - partially works. Characters are stuck after colliding
@@ -132,7 +132,7 @@ | ||
132 | 132 | // //KeyEvents::Char_Key_Release => { output_A = process_key_result_for_character(&key_processor, &mut character_A, key_result); } |
133 | 133 | // } |
134 | 134 | |
135 | - if(!checkCollision(&character_a,&character_b)) { | |
135 | + if !check_collision(&character_a, &character_b) { | |
136 | 136 | //character_A.update_sprite(); |
137 | 137 | //character_B.update_sprite(); |
138 | 138 |
@@ -140,14 +140,14 @@ | ||
140 | 140 | Ok(v) => { |
141 | 141 | character_b.update_sprite(v); |
142 | 142 | }, |
143 | - Err(e) => println!("Unsupported key_result") | |
143 | + Err(_e) => println!("Unsupported key_result") | |
144 | 144 | } |
145 | 145 | |
146 | 146 | match output_a { |
147 | 147 | Ok(v) => { |
148 | 148 | character_a.update_sprite(v); |
149 | 149 | }, |
150 | - Err(e) => println!("Unsupported key_result") | |
150 | + Err(_e) => println!("Unsupported key_result") | |
151 | 151 | } |
152 | 152 | } |
153 | 153 |
@@ -164,7 +164,7 @@ | ||
164 | 164 | |
165 | 165 | } |
166 | 166 | |
167 | -pub fn checkCollision(characterA: & Character, characterB: & Character) -> bool | |
167 | +pub fn check_collision(characterA: & Character, characterB: & Character) -> bool | |
168 | 168 | { |
169 | 169 | println!("Check collision Enter"); |
170 | 170 |
@@ -202,43 +202,45 @@ | ||
202 | 202 | |
203 | 203 | println!("checkCollision. A.state: {} B.state: {}", stateA, stateB ); |
204 | 204 | |
205 | - if(stateA == 1 && stateB == 0) | |
205 | + if stateA == 1 && stateB == 0 | |
206 | 206 | { |
207 | 207 | println!("Check collision A"); |
208 | - return (pos_A.x + 1.0 + char_width - pos_B.x).abs() < 1.0; | |
208 | + return (pos_A.x + 1.0 + char_width - pos_B.x).abs() <= 1.0; | |
209 | 209 | } |
210 | 210 | |
211 | - if(stateA == 2 && stateB == 0) | |
212 | - { println!("Check collision B"); | |
211 | + if stateA == 2 && stateB == 0 | |
212 | + { let val = (pos_A.x - 1.0 + char_width - pos_B.x).abs() ; | |
213 | + println!("Check collision B : {}", val); | |
213 | 214 | |
214 | - return (pos_A.x - 1.0 + char_width - pos_B.x).abs() < 1.0; | |
215 | + //return val < 1.0; | |
216 | + return val <= 1.0; | |
215 | 217 | } |
216 | 218 | |
217 | - if(stateA == 0 && stateB == 1) | |
219 | + if stateA == 0 && stateB == 1 | |
218 | 220 | { |
219 | 221 | println!("Check collision C"); |
220 | 222 | |
221 | - return (pos_A.x + char_width - pos_B.x - 1.0).abs() < 1.0; | |
223 | + return (pos_A.x + char_width - pos_B.x - 1.0).abs() <= 1.0; | |
222 | 224 | } |
223 | 225 | |
224 | - if(stateA == 0 && stateB == 2) | |
226 | + if stateA == 0 && stateB == 2 | |
225 | 227 | { |
226 | 228 | println!("Check collision D"); |
227 | 229 | |
228 | - return (pos_A.x + char_width - pos_B.x + 1.0).abs() < 1.0; | |
230 | + return (pos_A.x + char_width - pos_B.x + 1.0).abs() <= 1.0; | |
229 | 231 | } |
230 | 232 | |
231 | - if(stateA == 1 && stateB == 2) | |
233 | + if stateA == 1 && stateB == 2 | |
232 | 234 | { |
233 | 235 | println!("Check collision E"); |
234 | 236 | |
235 | - return (pos_A.x + char_width - pos_B.x).abs() < 2.0; | |
237 | + return (pos_A.x + char_width - pos_B.x).abs() <= 2.0; | |
236 | 238 | } |
237 | 239 | |
238 | - if(stateA == 2 && stateB == 1) | |
240 | + if stateA == 2 && stateB == 1 | |
239 | 241 | { |
240 | 242 | println!("Check collision F"); |
241 | - return (pos_A.x + char_width - pos_B.x ).abs() < 1.0; | |
243 | + return (pos_A.x + char_width - pos_B.x ).abs() <= 1.0; | |
242 | 244 | } |
243 | 245 | |
244 | 246 | return false; |