-
Notifications
You must be signed in to change notification settings - Fork 0
Worker Selection
Worker units are selected when the player hovers the mouse cursor over them and clicks with the left-mouse button. In this way, multiple worker units can be selected by left-clicking on more than one. Any worker units can be de-selected by pressing the ESC key on the keyboard.
Whenever the player presses the left-mouse button, this input is handled using the WorkerInputComponent
which is added to every worker. The handler used is the touchDown
function which is inherited and overwritten from the InputComponent
class.
The handler takes as input screenX (the x-position of the cursor), screenY (the y-position of the cursor) and button. The (x,y) position of the mouse in screen coordinates is converted into a world position using the screenToWorldPosition
function.
If the button pressed is the left-mouse button, then we check if the world position of the mouse is within the bounds of the worker using the inEntityBounds
function. If so, then the isSelected
attribute within the component is toggled to true
, and the worker is considered to be selected.
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
// Find the world coordinates of the cursor
Vector2 cursorWorldPos = screenToWorldPosition(screenX, screenY);
if (button == Input.Buttons.RIGHT) {
...
} else if (button == Input.Buttons.LEFT) {
// Worker is not selected.
// Determine if user is trying to select the entity.
if (inEntityBounds(cursorWorldPos.x, cursorWorldPos.y)) {
isSelected = true;
}
}
return false;
}
Whenever the player presses the ESC button, then the input is again handled by the WorkerInputComponent
. The handler used is the keyDown
function which takes as input the keyCode (numerical representation of key pressed). If the key pressed is found to be the ESC key, then isSelected
is toggled to false
.
public boolean keyDown(int keyCode) {
if (keyCode == Input.Keys.ESCAPE) {
// Deselect the worker (if not already)
isSelected = false;
}
return false;
}
Map
City
Buildings
Unit Selections
Game User Testing: Theme of Unit Selection & Spell System
Health Bars
In Game menu
- Feature
- User Testing:In Game Menu
Landscape Tile Design Feedback