summaryrefslogtreecommitdiffhomepage
path: root/src/logic.rb
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2022-01-23 00:59:12 -0500
committerrealtradam <[email protected]>2022-01-23 00:59:12 -0500
commit7a34805a0dbb1238c742263438f01408fcf3c7f0 (patch)
tree69063a964fde60646ad403fd3e05d13fbef0c864 /src/logic.rb
parent7fd3b6e72a652ff4307e394dc19b46b50a376fea (diff)
downloadorc-arena-of-time-7a34805a0dbb1238c742263438f01408fcf3c7f0.tar.gz
orc-arena-of-time-7a34805a0dbb1238c742263438f01408fcf3c7f0.zip
added hitbox skeleton code
Diffstat (limited to 'src/logic.rb')
-rw-r--r--src/logic.rb39
1 files changed, 21 insertions, 18 deletions
diff --git a/src/logic.rb b/src/logic.rb
index 1be8024..e921988 100644
--- a/src/logic.rb
+++ b/src/logic.rb
@@ -15,6 +15,10 @@ FECS::Cmp.new('Tileset',
:dest_rect,
:rotation,
:tint)
+FECS::Cmp.new('Hitbox',
+ :rect,
+ offset_x: 0,
+ offset_y: 0)
FECS::Cmp.new('Hp', value: 0)
lancelot = Tileset.new(texture: Rl::Texture.new('./assets/lancelot_.png'))
@@ -48,10 +52,13 @@ end
acceleration: 3,
max_speed: 300,
),
+ FECS::Cmp::Hitbox.new(
+ rect: Rl::Rectangle.new(0,0,16,20),
+ offset_x: 4,
+ offset_y: 4
+ ),
)
-
-
FECS::Stg.add(FECS::Scn.new('Play'))
FECS::Scn::Play.add(
@@ -125,22 +132,15 @@ FECS::Scn::Play.add(
velocity_cmp.y = velocity_y_mag * movement_cmp.max_speed
end
end
-
-
- #if velocity_cmp.x > (movement_cmp.deceleration)
- # velocity_cmp.x -= movement_cmp.deceleration
- #elsif velocity_cmp.x < (-movement_cmp.deceleration)
- # velocity_cmp.x += movement_cmp.deceleration
- #else
- # velocity_cmp.x = 0
- #end
- #if velocity_cmp.y > (movement_cmp.deceleration)
- # velocity_cmp.y -= movement_cmp.deceleration
- #elsif velocity_cmp.y < (-movement_cmp.deceleration)
- # velocity_cmp.y += movement_cmp.deceleration
- #else
- # velocity_cmp.y = 0
- #end
+ end,
+ FECS::Sys.new('Walls') do
+ player = FECS::Cmp::Player.first.entity
+ player_hitbox = player.component[FECS::Cmp::Hitbox]
+ FECS::Cmp::Hitbox.each do |hitbox|
+ next if player_hitbox.equal? hitbox
+ if player_hitbox.collide_with_rect? hitbox
+ end
+ end
end,
FECS::Sys.new('Movement') do
FECS::Cmp::Velocity.each do |velocity_cmp|
@@ -195,6 +195,8 @@ FECS::Scn::Play.add(
rotation: sprite_cmp.rotation)
end
end,
+ FelECS::Sys.new('DebugRenderHitbox') do
+ end
)
FelECS::Order.sort(
@@ -202,4 +204,5 @@ FelECS::Order.sort(
FECS::Sys::Movement,
FECS::Sys::ApplyPositionToSprite,
FECS::Sys::Render,
+ FECS::Sys::ShowSpeed,
)