diff options
| -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 | ||||
| -rw-r--r-- | fonts/kenvector_future_thin.ttf | bin | 0 -> 34100 bytes |
8 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 1854893..28ce373 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 a936c21..e2e5501 100644 --- a/app/systems/start_game.rb +++ b/app/systems/start_game.rb @@ -57,14 +57,38 @@ FF::Sys.new('StartGame', priority: 50 ) do FF::Cmp::Hitcircle.new(r: 16), ) - + 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 diff --git a/fonts/kenvector_future_thin.ttf b/fonts/kenvector_future_thin.ttf Binary files differnew file mode 100644 index 0000000..9f4b4fa --- /dev/null +++ b/fonts/kenvector_future_thin.ttf |
