Mercurial repo for silny-kombat project
Révision | c7cab09b77f1640e4890071f49f74be81b1f4f60 (tree) |
---|---|
l'heure | 2023-01-16 02:51:03 |
Auteur | SecT <grzegorzstarowicz@gmai...> |
Commiter | SecT |
Refactoring - renderer
@@ -27,6 +27,7 @@ | ||
27 | 27 | use sfml::window::{Key}; |
28 | 28 | |
29 | 29 | use crate::key_processing; |
30 | +use crate::renderer::Renderer; | |
30 | 31 | //use crate::renderer::Renderer; |
31 | 32 | |
32 | 33 | pub const TEXTURE_ARRAY_SIZE : usize = 6; |
@@ -46,7 +47,8 @@ | ||
46 | 47 | |
47 | 48 | textures: &'a [ SfBox<Texture>; TEXTURE_ARRAY_SIZE], |
48 | 49 | |
49 | - key_processor : KeyProcessor | |
50 | + key_processor : KeyProcessor, | |
51 | + myRenderer : Renderer | |
50 | 52 | } |
51 | 53 | |
52 | 54 | impl<'a> Controller<'a> { |
@@ -57,7 +59,8 @@ | ||
57 | 59 | character_a: None, |
58 | 60 | character_b: None, |
59 | 61 | textures, |
60 | - key_processor : KeyProcessor::new() | |
62 | + key_processor : KeyProcessor::new() , | |
63 | + myRenderer : Renderer::new() | |
61 | 64 | } |
62 | 65 | } |
63 | 66 |
@@ -81,7 +84,7 @@ | ||
81 | 84 | //If True - queue interaction_event to character (for example "is_hit") |
82 | 85 | //If False - CharacterX.sprite.update() |
83 | 86 | |
84 | - let mut window = renderer::prepare_window(); | |
87 | + let mut window = self.myRenderer.prepare_window(); | |
85 | 88 | |
86 | 89 | |
87 | 90 | let mut character_a: Character = Character ::new("Sub Zero", self.textures); |
@@ -96,7 +99,7 @@ | ||
96 | 99 | background_sprite.set_texture(&self.textures[Texture_Ids::BACKGROUND as usize], true); |
97 | 100 | |
98 | 101 | |
99 | - renderer::prepareSprites(& window, &mut character_a, &mut character_b, &mut background_sprite, ground_level); | |
102 | + self.myRenderer.prepareSprites(& window, &mut character_a, &mut character_b, &mut background_sprite, ground_level); | |
100 | 103 | |
101 | 104 | |
102 | 105 | //let key_processor = KeyProcessor::new(); |
@@ -117,7 +120,7 @@ | ||
117 | 120 | self.key_processor.processKeyPress( &mut window, &mut character_a, &mut character_b, ground_level); |
118 | 121 | |
119 | 122 | |
120 | - renderer::displayWindow(&mut window, &background_sprite, &character_a.char_sprite.sprite, &character_b.char_sprite.sprite); | |
123 | + self.myRenderer.displayWindow(&mut window, &background_sprite, &character_a.char_sprite.sprite, &character_b.char_sprite.sprite); | |
121 | 124 | |
122 | 125 | //end main loop |
123 | 126 | } |
@@ -30,6 +30,61 @@ | ||
30 | 30 | } |
31 | 31 | } |
32 | 32 | |
33 | +pub struct Renderer { | |
34 | + | |
35 | +} | |
36 | + | |
37 | +impl Renderer{ | |
38 | + pub fn new() -> Self{ | |
39 | + Renderer { | |
40 | + | |
41 | + } | |
42 | + } | |
43 | + | |
44 | + pub fn prepareSprites(&self, window : & RenderWindow , character_a: & mut Character, character_b: & mut Character, background_sprite : & mut Sprite, ground_level : f32) | |
45 | + { | |
46 | + character_a.char_sprite.sprite.set_scale(Vector2f::new(1.0, 1.0)); | |
47 | + character_b.char_sprite.sprite.set_scale(Vector2f::new(-1.0, 1.0)); | |
48 | + | |
49 | + character_a.char_sprite.sprite.set_position(Vector2f::new(0.0, ground_level + 0.0)); | |
50 | + character_b.char_sprite.sprite.set_position(Vector2f::new(600.0, ground_level + 0.0)); | |
51 | + | |
52 | + | |
53 | + let target_size: Vector2f = Vector2f::new(window.size().x as f32, window.size().y as f32); | |
54 | + let mut scale_vect: Vector2f = Vector2f::new(target_size.x / background_sprite.local_bounds().width, | |
55 | + target_size.y / background_sprite.local_bounds().height); | |
56 | + background_sprite.set_scale(scale_vect); | |
57 | + } | |
58 | + | |
59 | + pub fn prepare_window(&self) -> RenderWindow { | |
60 | + let context_settings = ContextSettings::default(); | |
61 | + | |
62 | + let game_width = 800; | |
63 | + let game_height = 600; | |
64 | + | |
65 | + let mut window = RenderWindow::new( | |
66 | + (game_width, game_height), | |
67 | + "Silny Kombat", | |
68 | + Style::CLOSE, | |
69 | + &context_settings, | |
70 | + ); | |
71 | + //window.set_key_repeat_enabled(false); | |
72 | + window.set_vertical_sync_enabled(true); | |
73 | + window.set_framerate_limit(80); | |
74 | + window | |
75 | + } | |
76 | + | |
77 | + pub fn displayWindow(&self, window: &mut RenderWindow, background_sprite: &Sprite, char_A_sprite : &Sprite , char_B_sprite : &Sprite) | |
78 | + { | |
79 | + window.clear(Color::rgb(50, 200, 50)); | |
80 | + window.draw(background_sprite); | |
81 | + window.draw(char_A_sprite); | |
82 | + window.draw(char_B_sprite); | |
83 | + window.display(); | |
84 | + } | |
85 | + | |
86 | +} | |
87 | + | |
33 | 88 | // pub struct Renderer<'a> { |
34 | 89 | // textures: &'a [&'a SfBox<Texture>; controller::TEXTURE_ARRAY_SIZE], |
35 | 90 | // |
@@ -53,46 +108,4 @@ | ||
53 | 108 | // { |
54 | 109 | // |
55 | 110 | // } |
56 | -// } | |
57 | - | |
58 | -pub fn prepareSprites( window : & RenderWindow , character_a: & mut Character, character_b: & mut Character, background_sprite : & mut Sprite, ground_level : f32) | |
59 | -{ | |
60 | - character_a.char_sprite.sprite.set_scale(Vector2f::new(1.0, 1.0)); | |
61 | - character_b.char_sprite.sprite.set_scale(Vector2f::new(-1.0, 1.0)); | |
62 | - | |
63 | - character_a.char_sprite.sprite.set_position(Vector2f::new(0.0, ground_level + 0.0)); | |
64 | - character_b.char_sprite.sprite.set_position(Vector2f::new(600.0, ground_level + 0.0)); | |
65 | - | |
66 | - | |
67 | - let target_size: Vector2f = Vector2f::new(window.size().x as f32, window.size().y as f32); | |
68 | - let mut scale_vect: Vector2f = Vector2f::new(target_size.x / background_sprite.local_bounds().width, | |
69 | - target_size.y / background_sprite.local_bounds().height); | |
70 | - background_sprite.set_scale(scale_vect); | |
71 | -} | |
72 | - | |
73 | -pub fn prepare_window() -> RenderWindow { | |
74 | - let context_settings = ContextSettings::default(); | |
75 | - | |
76 | - let game_width = 800; | |
77 | - let game_height = 600; | |
78 | - | |
79 | - let mut window = RenderWindow::new( | |
80 | - (game_width, game_height), | |
81 | - "Silny Kombat", | |
82 | - Style::CLOSE, | |
83 | - &context_settings, | |
84 | - ); | |
85 | - //window.set_key_repeat_enabled(false); | |
86 | - window.set_vertical_sync_enabled(true); | |
87 | - window.set_framerate_limit(80); | |
88 | - window | |
89 | -} | |
90 | - | |
91 | -pub fn displayWindow(window: &mut RenderWindow, background_sprite: &Sprite, char_A_sprite : &Sprite , char_B_sprite : &Sprite) | |
92 | -{ | |
93 | - window.clear(Color::rgb(50, 200, 50)); | |
94 | - window.draw(background_sprite); | |
95 | - window.draw(char_A_sprite); | |
96 | - window.draw(char_B_sprite); | |
97 | - window.display(); | |
98 | -} | |
\ No newline at end of file | ||
111 | +// } | |
\ No newline at end of file |