-
Notifications
You must be signed in to change notification settings - Fork 1
Floor Buttons
These buttons were originally proposed to be on the floor of a level, so the animation above is based upon this notion. There are plans to implement wall-based buttons also in future sprints; it is believed these will have the same functionality but with a different texture (e.g. levers).
This button used a similar colour scheme to the jump pad, wherein the object glows light-blue when active to visually display it's success. It was noted by the team that the button should press down with little effort, while the button reset should be slightly more delayed.
Cables or 'veins' were also added to the base of the button, this was to show the flow of power (light-blue colouring) from the button to the floor. It was assumed this allowed the user to see the connection between a button and it's corresponding action.
The button entities are all mapped to a specific bridge or portal entities which, after the button is pressed, are made able or unable to be collided with. The buttons are mapped to the closest bridge or portal when the level is created as to avoid any scenarios where a button early in the level is mapped to a bridge/portal late in the level and it prevents the player from being able to progress through the level.
This functionality is handled in both the LevelGameArea
and PlayerMovementComponent
classes. All buttons are created with an InteractableComponent
which is a dummy component that acts as an indicator to the mapInteractables
function in the LevelGameArea
class and the onCollisonStart
function that the entity is an interactable entity. An interactable entity is one that is able to be interacted with at any point in the game and whose state doesn't change when interacted with. As of now, buttons can only be pressed once to trigger bridge/portal state changes.
As mentioned, button entities will be mapped to the closest bridge or portal entity in the mapInteractables
function. The ArrayList<ObstacleEntity> mappedSubInteractables
will hold these mappings to be used by the onCollisionStart
function in the PlayerMovementComponent
class. If onCollisionStart
is provided a fixture with an InteractableComponent
, it will retrieve the mapped bridge or portal and toggle whether the entity is a sensor of not.
public void mapInteractables() {
// list of all buttons in order of creation
ArrayList<ObstacleEntity> buttons = new ArrayList<>();
//list of all doors and bridges in order of creation
ArrayList<ObstacleEntity> subInteractables = new ArrayList<>();
for (int i = 0; i < obstacleEntities.size(); i++) {
ObstacleEntity obstacle = obstacleEntities.get(i);
InteractableComponent interactable = obstacle.getComponent(InteractableComponent.class); // button
SubInteractableComponent subInteractable = obstacle.getComponent(SubInteractableComponent.class); //door or bridge
if (subInteractable != null) { // if bridge or door
subInteractables.add(obstacle);
} else if (interactable != null) { //if button
buttons.add(obstacle);
}
}
if (buttons.size() > 0 && subInteractables.size() > 0) {
for (int j = 0; j < buttons.size(); j++) {
InteractableComponent interactable = buttons.get(j).getComponent(InteractableComponent.class);
interactable.addSubInteractable(subInteractables.get(j));
interactableEntities.add(buttons.get(j));
}
}
System.out.println(buttons.toString());
System.out.println(subInteractables.toString());
}
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)