summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/levels.rb18
-rw-r--r--src/logic.rb11
2 files changed, 21 insertions, 8 deletions
diff --git a/src/levels.rb b/src/levels.rb
index abe67c5..2f7bf2a 100644
--- a/src/levels.rb
+++ b/src/levels.rb
@@ -19,7 +19,7 @@ level0 = {
Math.bezier([200, 1183, 200, 200],time)-150]
end
),
- end_goal: Rl::Rectangle.new(40,40,10,10),
+ end_goal: [40,40,10,10],
walls: [
[250,250, 250,150],
[350,200, 050,350],
@@ -63,16 +63,22 @@ FECS::Sys.new('ConstructLevel') do
)
end
- player_ent = FECS::Cmp::Player.first.entity
- player_pos = player_ent.component[FECS::Cmp::Position]
- player_vel = player_ent.component[FECS::Cmp::Velocity]
+ EndGoal.rec = Rl::Rectangle.new(
+ level[:end_goal][0],
+ level[:end_goal][1],
+ level[:end_goal][2],
+ level[:end_goal][3],
+ )
+
+ player_pos = Player.component[FECS::Cmp::Position]
+ player_vel = Player.component[FECS::Cmp::Velocity]
player_pos.x = level[:player_spawn].x
player_pos.y = level[:player_spawn].y
player_vel.x = 0
player_vel.y = 0
- player_ent.component[FECS::Cmp::Player].moved = false
+ Player.component[FECS::Cmp::Player].moved = false
FECS::Cmp::ScissorTime.first.time = 0
end
@@ -80,7 +86,7 @@ end
FECS::Sys.new('DestroyLevel') do
FECS::Cmp::Hitbox.reverse_each do |hitbox_cmp|
unless hitbox_cmp.entities.empty?
- next if hitbox_cmp.entity.equal? @player
+ next if hitbox_cmp.entity.equal? Player
end
hitbox_cmp.delete
end
diff --git a/src/logic.rb b/src/logic.rb
index b4fb3a1..6fb5baf 100644
--- a/src/logic.rb
+++ b/src/logic.rb
@@ -46,6 +46,7 @@ FECS::Cmp.new('DamageHitbox',
damage: 1,
offset_x: 0,
offset_y: 0)
+FECS::Cmp.new('EndGoal', :rec)
#ScissorPath = Path.new(
# lambda do |time|
@@ -56,7 +57,7 @@ FECS::Cmp.new('DamageHitbox',
#FECS::Cmp::ScissorBox.new(rec: Rl::Rectangle.new(200,200,250,250))
FECS::Cmp::ScissorTime.new(time: 0)
-
+EndGoal = FECS::Cmp::EndGoal.new
Input = FECS::Cmp::Input.new
lancelot = Tileset.new(texture: Rl::Texture.new('./assets/lancelot_.png'))
@@ -104,7 +105,7 @@ FECS::Cmp::Hitbox.new(
=end
-@player = FECS::Ent.new(
+Player = FECS::Ent.new(
FECS::Cmp::Player.new,
FECS::Cmp::Hp.new(value: 100, max_invincible_time: 2),
FECS::Cmp::Position.new(x: 120, y: 300),
@@ -337,6 +338,12 @@ FECS::Scn::Play.add(
end
end
end,
+ FECS::Sys.new('CheckEndGoal') do
+ player_hitbox = Player.component[FECS::Cmp::Hitbox].rec
+ if EndGoal.rec.collide_with_rec? player_hitbox
+ puts 'you\'re winner'
+ end
+ end,
FECS::Sys.new('ShowSpeed') do
if Input.show_debug
player = FECS::Cmp::Player.first.entity