diff options
| author | arngo <[email protected]> | 2021-12-26 22:30:44 -0500 |
|---|---|---|
| committer | arngo <[email protected]> | 2021-12-26 22:30:44 -0500 |
| commit | 930802e49e33c87ef0fd2f102b9205a4098878d3 (patch) | |
| tree | 56cbf22ebbb4b16ac037eb2f525ca15d5656b96f /app | |
| parent | 70b2499a8753331b68fb7a61a8882c9ff0b017d8 (diff) | |
| download | SteelWings-930802e49e33c87ef0fd2f102b9205a4098878d3.tar.gz SteelWings-930802e49e33c87ef0fd2f102b9205a4098878d3.zip | |
implement score ui
Diffstat (limited to 'app')
| -rw-r--r-- | app/components/label.rb | 13 | ||||
| -rw-r--r-- | app/components/singleton_score.rb | 4 | ||||
| -rw-r--r-- | app/main.rb | 3 | ||||
| -rw-r--r-- | app/systems/death.rb | 2 | ||||
| -rw-r--r-- | app/systems/render.rb | 3 | ||||
| -rw-r--r-- | app/systems/start_game.rb | 28 | ||||
| -rw-r--r-- | app/systems/ui/score.rb | 7 |
7 files changed, 58 insertions, 2 deletions
diff --git a/app/components/label.rb b/app/components/label.rb new file mode 100644 index 0000000..25b5529 --- /dev/null +++ b/app/components/label.rb @@ -0,0 +1,13 @@ +FF::Cmp.new("Label", props: { + x: 0, + y: 0, + text: 'label', + size_enum: 2, + alignment_enum: 1, + r: 255, + g: 255, + b: 255, + a: 255, + font: "font.ttf", + vertical_alignment_enum: 0 +}) diff --git a/app/components/singleton_score.rb b/app/components/singleton_score.rb new file mode 100644 index 0000000..4f6514b --- /dev/null +++ b/app/components/singleton_score.rb @@ -0,0 +1,4 @@ +FF::Cmp.new('SingletonScore', + score: 0, + singleton: true) +FF::Cmp::SingletonScore.new diff --git a/app/main.rb b/app/main.rb index 5f59b42..cd07f6e 100644 --- a/app/main.rb +++ b/app/main.rb @@ -29,8 +29,11 @@ require 'app/components/teams/team.rb' require 'app/components/singleton_title.rb' require 'app/components/singleton_ai_timer.rb' require 'app/components/singleton_random_ai_pick.rb' +require 'app/components/label.rb' +require 'app/components/singleton_score.rb' +require 'app/systems/ui/score.rb' require 'app/systems/init_title_screen.rb' require 'app/systems/ui/button.rb' require 'app/systems/ui/return_to_menu.rb' diff --git a/app/systems/death.rb b/app/systems/death.rb index edeb493..ae02dec 100644 --- a/app/systems/death.rb +++ b/app/systems/death.rb @@ -5,6 +5,8 @@ FF::Scn::BoidRules.add( hp.entities[0].components.each do |manager, manager_array| if manager.equal?(FF::Cmp::SingletonPlayer) FF::Sys::EndGame.call + elsif manager.equal?(FF::Cmp::SingletonEnemyTeam) + FF::Sys::Score.call end next if manager.equal?(FF::Cmp::Hp) manager_array.reverse_each do |component| diff --git a/app/systems/render.rb b/app/systems/render.rb index 4bd117c..a067613 100644 --- a/app/systems/render.rb +++ b/app/systems/render.rb @@ -3,5 +3,8 @@ FF::Scn::Render.add( FF::Cmp::Sprite.each do |sprite| $gtk.args.outputs.sprites << sprite.props end + FF::Cmp::Label.each do |label| + $gtk.args.outputs.labels << label.props + end end ) diff --git a/app/systems/start_game.rb b/app/systems/start_game.rb index 4d6289e..a0073bd 100644 --- a/app/systems/start_game.rb +++ b/app/systems/start_game.rb @@ -56,14 +56,38 @@ FF::Sys.new('StartGame', priority: 50 ) do FF::Cmp::Hitcircle.new(r: 32), ) - + score_label_shadow = FF::Cmp::Label.new + score_label_shadow.props.merge!({ + x: 50, + y: 667, + text: '0', + size_enum: 8, + r: 100, + g: 100, + b: 100, + font: 'fonts/kenvector_future_thin.ttf', + }) + score_label = FF::Cmp::Label.new + score_label.props.merge!({ + x: 50, + y: 670, + text: '0', + size_enum: 8, + font: 'fonts/kenvector_future_thin.ttf', + }) + score = FF::Cmp::SingletonScore[0] + score.score = 0 + FF::Ent.new( + score_label, + score_label_shadow, + score, + ) FF::Stg.add( FF::Scn::BoidRules, FF::Scn::Camera, FF::Scn::Cleanup, ) - FF::Scn::Debug.add(FF::Sys::DebugRenderVectorArrow) @pause = false #FF::Stg.remove FF::Scn::BoidRules diff --git a/app/systems/ui/score.rb b/app/systems/ui/score.rb new file mode 100644 index 0000000..c761561 --- /dev/null +++ b/app/systems/ui/score.rb @@ -0,0 +1,7 @@ +FF::Sys.new("Score", priority: 50) do + score = FF::Cmp::SingletonScore[0] + score.score += 100 + score.entities[0].components[FF::Cmp::Label].each do |label| + label.props[:text] = score.score.to_s + end +end |
