-
Notifications
You must be signed in to change notification settings - Fork 1
Collision
The Player's collision is handled entirely by the Box2D Physics engine. When a player is being generated via 'PlayerFactory', 3 key components are added to the entity. These are PhysicsComponent
, ColliderComponent
and HitboxComponent
, which are then used by the PhysicsEngine
when monitoring and calculating collision physics. For two entites to collide, and not phase through each other, the are require to have all three components.
Collision Physics: ColliderComponent
attaches a physics based collider to an entity, which allows it to collide with other physics objects (any object that has the PhysicsComponent
attached to it). The default shape of this collider is a rectangle, with the player at the centre. It is possible to define more complex shapes, should one be required. Several attributes, such as object density, friction and 'bounciness' are defined and store within this method.
Collision Detection: HitboxComponent
, when assigned to an entity, mirrors the shape of the ColliderComponent
and allows for the detection of collisions without direct interaction. Upon this component being added to an entity, HitboxComponent
is also supplied a Physics Layer to place said entity upon. In the case of the Player and other NPC's, this is the PLAYER layer.
Physics Engine: During every step of the physics simulation, the PhysicsEngine
uses the raycast()
method to search for collisions. A ray is created at the Player's position, which ends at the 'destination' of the player's projected movement. It then checks along the length of the ray for any colliders in the specified "Physics Layer" (PLAYER in this case), returns to the engine if a hit was detected or not. Upon hit detection, the Player's movement is restricted accoridngly.
Note that HitboxComponent
is an extension of ColliderComponent
that has setSensor
set to true, disabling the collison. The two are presumably kept separate to avoid any errors resulting from the hitbox being the collision box.
Testing Plans
Team 1
Team 2
Team 3
Team 4
Team 5
Team 1
Team 2
Team 3
Team 4
Team 5
User Testing
Sprint 1 - Game Audio
Sprint 1 - Character Design
Sprint 1 - Menu Assets
Sprint 1 - Map Design
Sprint 1 - Void
Sprint 2 - Game Audio
Sprint 2 - Character Design
Sprint 2 - Menu Assets
Sprint 2 - Interactable Design Animation
Sprint 2 - Levels 1 & 4, and Level Editor
Sprint 2 - Proposed Level 2 & 3 Designs
Sprint 2 - Current Game State
Sprint 3 - Menu Assets
Sprint 3 - Map Design
Sprint 3 - Score Display
Sprint 3 - Player Death and Spawn Animations
Sprint 3 - Pick Ups and Pause Screen
Sprint 4 - Gameplay
Sprint 4 - Game UI and Animation
Sprint 4 - Level Background and Music
Sprint 4 - Game User Testing
Sprint 4 - Final Game State Testing
Entities and Components
Status Components
Event System
Player Animations Implementation
Development Resources
Entities and Components
Level Editor (Saving and Loading
Multiple Levels)