From 7a34805a0dbb1238c742263438f01408fcf3c7f0 Mon Sep 17 00:00:00 2001 From: realtradam Date: Sun, 23 Jan 2022 00:59:12 -0500 Subject: added hitbox skeleton code --- src/logic.rb | 39 +++++++++++++++++++++------------------ 1 file 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, ) -- cgit v1.2.3