File tree Expand file tree Collapse file tree 3 files changed +21
-5
lines changed Expand file tree Collapse file tree 3 files changed +21
-5
lines changed Original file line number Diff line number Diff line change 8
8
9
9
namespace FlappyBug {
10
10
11
- Game::Game ()
11
+ Game::Game (Bug bug)
12
+ : m_bug(move(bug))
12
13
{
13
14
set_override_cursor (Gfx::StandardCursor::Hidden);
14
15
start_timer (16 );
Original file line number Diff line number Diff line change @@ -44,11 +44,26 @@ class Game final : public GUI::Frame {
44
44
const float x { 50 };
45
45
const float radius { 16 };
46
46
const float starting_y { 200 };
47
- NonnullRefPtr<Gfx::Bitmap> falling_bitmap { Gfx::Bitmap::try_load_from_file ( " /res/icons/flappybug/falling.png " ). release_value_but_fixme_should_propagate_errors () } ;
48
- NonnullRefPtr<Gfx::Bitmap> flapping_bitmap { Gfx::Bitmap::try_load_from_file ( " /res/icons/flappybug/flapping.png " ). release_value_but_fixme_should_propagate_errors () } ;
47
+ NonnullRefPtr<Gfx::Bitmap> falling_bitmap;
48
+ NonnullRefPtr<Gfx::Bitmap> flapping_bitmap;
49
49
float y {};
50
50
float velocity {};
51
51
52
+ private:
53
+ Bug (NonnullRefPtr<Gfx::Bitmap> falling_bitmap_value, NonnullRefPtr<Gfx::Bitmap> flapping_bitmap_value)
54
+ : falling_bitmap(move(falling_bitmap_value))
55
+ , flapping_bitmap(move(flapping_bitmap_value))
56
+ {
57
+ }
58
+
59
+ public:
60
+ static ErrorOr<Bug> construct ()
61
+ {
62
+ NonnullRefPtr<Gfx::Bitmap> falling_bitmap = TRY (Gfx::Bitmap::try_load_from_file (" /res/icons/flappybug/falling.png" ));
63
+ NonnullRefPtr<Gfx::Bitmap> flapping_bitmap = TRY (Gfx::Bitmap::try_load_from_file (" /res/icons/flappybug/flapping.png" ));
64
+ return Bug (move (falling_bitmap), move (flapping_bitmap));
65
+ }
66
+
52
67
void reset ()
53
68
{
54
69
y = starting_y;
@@ -153,7 +168,7 @@ class Game final : public GUI::Frame {
153
168
const Gfx::IntRect m_score_rect { 10 , 10 , 20 , 20 };
154
169
const Gfx::IntRect m_text_rect { game_width / 2 - 80 , game_height / 2 - 40 , 160 , 80 };
155
170
156
- Game ();
171
+ Game (Bug );
157
172
};
158
173
159
174
}
Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
37
37
window->set_title (" Flappy Bug" );
38
38
window->set_double_buffering_enabled (false );
39
39
window->set_resizable (false );
40
- auto widget = TRY (window->try_set_main_widget <FlappyBug::Game>());
40
+ auto widget = TRY (window->try_set_main_widget <FlappyBug::Game>(TRY ( FlappyBug::Game::Bug::construct ()) ));
41
41
42
42
widget->on_game_end = [&](u32 score) {
43
43
if (score <= high_score)
You can’t perform that action at this time.
0 commit comments