Mercurial repo for silny-kombat project
リビジョン | 6ffab9e31301a0a9fcaae71d599228034635dfd3 (tree) |
---|---|
日時 | 2021-04-28 04:44:28 |
作者 | SecT |
コミッター | SecT |
Refactoring - created CharacterSprite struct
@@ -49,17 +49,16 @@ | ||
49 | 49 | let textures: [&SfBox<Texture>; 4] = [&fighter, &fighter2, &fighter_walk0, &fighter_walk1]; |
50 | 50 | // let textures_b: [&SfBox<Texture>; 4] = [&fighter_b, &fighter_b2, &fighter_b_walk0, &fighter_b_walk1]; |
51 | 51 | |
52 | + let mut character_sprite = sprite_rendering::CharacterSprite::new(); | |
53 | + let mut character_sprite_b = sprite_rendering::CharacterSprite::new(); | |
52 | 54 | |
53 | - let mut sprite = Sprite::new(); | |
54 | 55 | let mut state = 0; |
55 | - | |
56 | - let mut sprite_b = Sprite::new(); | |
57 | 56 | let mut state_b = 0; |
58 | 57 | |
59 | - sprite_b.set_position(Vector2f::new(600.0, 0.0)); | |
60 | - sprite_b.set_scale(Vector2f::new(-1.0, 1.0)); | |
61 | 58 | |
62 | - //sprite.set_texture(&fighter, true); | |
59 | + character_sprite_b.sprite.set_position(Vector2f::new(600.0, 0.0)); | |
60 | + character_sprite_b.sprite.set_scale(Vector2f::new(-1.0, 1.0)); | |
61 | + | |
63 | 62 | |
64 | 63 | let mut counter = 0; |
65 | 64 |
@@ -77,11 +76,11 @@ | ||
77 | 76 | counter = 0; |
78 | 77 | } |
79 | 78 | if key_result == 1 || key_result == 2 || key_result == 3 { |
80 | - key_processing::process_key(&mut sprite, key_result, &mut state); | |
79 | + key_processing::process_key(&mut character_sprite.sprite, key_result, &mut state); | |
81 | 80 | } |
82 | 81 | //second char/////////// |
83 | 82 | else if key_result == key_processing::KEY_BASE + 1|| key_result ==key_processing::KEY_BASE + 2 { |
84 | - key_processing::process_key(&mut sprite_b, key_result - key_processing::KEY_BASE, &mut state_b); | |
83 | + key_processing::process_key(&mut character_sprite_b.sprite, key_result - key_processing::KEY_BASE, &mut state_b); | |
85 | 84 | } |
86 | 85 | else if key_result == key_processing::KEY_BASE + 3 { |
87 | 86 | state_b = 0; |
@@ -98,12 +97,12 @@ | ||
98 | 97 | } |
99 | 98 | |
100 | 99 | |
101 | - sprite_rendering::show_sprite2(&textures, &mut sprite, state, counter); | |
102 | - sprite_rendering::show_sprite2(&textures, &mut sprite_b, state_b, counter); | |
100 | + character_sprite.show_sprite2(&textures, state, counter); | |
101 | + character_sprite_b.show_sprite2(&textures, state_b, counter); | |
103 | 102 | |
104 | 103 | window.clear(Color::rgb(50, 200, 50)); |
105 | - window.draw(&sprite); | |
106 | - window.draw(&sprite_b); | |
104 | + window.draw(&character_sprite.sprite); | |
105 | + window.draw(&character_sprite_b.sprite); | |
107 | 106 | window.display(); |
108 | 107 | |
109 | 108 | } |
@@ -7,52 +7,69 @@ | ||
7 | 7 | SfBox |
8 | 8 | }; |
9 | 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 | - move_right(&mut sprite); | |
10 | + pub struct CharacterSprite<'a> { | |
11 | + //sprite : &'a mut Sprite<'a> | |
12 | + pub sprite : Sprite<'a> | |
13 | + } | |
25 | 14 | |
26 | - if counter % 10 == 0 | |
27 | - { | |
28 | - sprite.set_texture(&textures[2], true); | |
29 | - } | |
30 | - if counter % 20 == 0 | |
31 | - { | |
32 | - sprite.set_texture(&textures[3], true); | |
33 | - } | |
34 | - } else if state == 2 | |
35 | - { | |
36 | - move_left(&mut sprite); | |
15 | + impl<'a> CharacterSprite<'a>{ | |
16 | + //fn new(new_sprite: &'a Sprite) -> Self{ | |
17 | + //pub fn new(new_sprite: &'a mut Sprite<'a>) -> Self{ | |
18 | + pub fn new() -> Self{ | |
19 | + let mut sprite = Sprite::new(); | |
37 | 20 | |
38 | - if counter % 10 == 0 | |
39 | - { | |
40 | - sprite.set_texture(&textures[3], true); | |
41 | - } | |
42 | - if counter % 20 == 0 | |
43 | - { | |
44 | - sprite.set_texture(&textures[2], true); | |
21 | + CharacterSprite{ | |
22 | + sprite | |
45 | 23 | } |
46 | 24 | } |
25 | + | |
26 | + fn move_left(&mut self) { | |
27 | + let v = Vector2f::new(-1.0, 0.0); | |
28 | + self.sprite.move_(v); | |
29 | + } | |
30 | + | |
31 | + pub fn move_right(&mut self) { | |
32 | + let v = Vector2f::new(1.0, 0.0); | |
33 | + self.sprite.move_(v); | |
34 | + } | |
35 | + | |
36 | + pub fn show_sprite2(&mut self, textures: &'a [&SfBox<Texture>], state: i32, counter: i32) { | |
37 | + if state == 0 | |
38 | + { | |
39 | + if counter % 10 == 0 | |
40 | + { | |
41 | + self.sprite.set_texture(&textures[1], true); | |
42 | + } | |
43 | + if counter % 20 == 0 | |
44 | + { | |
45 | + self.sprite.set_texture(&textures[0], true); | |
46 | + } | |
47 | + } else if state == 1 | |
48 | + { | |
49 | + self.move_right(); | |
50 | + | |
51 | + if counter % 10 == 0 | |
52 | + { | |
53 | + self.sprite.set_texture(&textures[2], true); | |
54 | + } | |
55 | + if counter % 20 == 0 | |
56 | + { | |
57 | + self.sprite.set_texture(&textures[3], true); | |
58 | + } | |
59 | + } else if state == 2 | |
60 | + { | |
61 | + self.move_left(); | |
62 | + | |
63 | + if counter % 10 == 0 | |
64 | + { | |
65 | + self.sprite.set_texture(&textures[3], true); | |
66 | + } | |
67 | + if counter % 20 == 0 | |
68 | + { | |
69 | + self.sprite.set_texture(&textures[2], true); | |
70 | + } | |
71 | + } | |
72 | + } | |
73 | + | |
47 | 74 | } |
48 | 75 | |
49 | - | |
50 | - pub fn move_left(sprite: &mut Sprite) { | |
51 | - let v = Vector2f::new(-1.0, 0.0); | |
52 | - sprite.move_(v); | |
53 | - } | |
54 | - | |
55 | - pub fn move_right(sprite: &mut Sprite) { | |
56 | - let v = Vector2f::new(1.0, 0.0); | |
57 | - sprite.move_(v); | |
58 | - } |