added button animation

This commit is contained in:
2020-02-02 15:00:34 -05:00
parent e65ae28903
commit 4ecd89e406
7 changed files with 116 additions and 9 deletions

View File

@@ -11,6 +11,7 @@ public class EventControls : MonoBehaviour
[SerializeField] private Camera camera;
[SerializeField] private GameObject music;
[SerializeField] private List<Tile> tiles;
[SerializeField] private List<Tile> pressedTiles;
[SerializeField] private List<Tile> successTiles;
[SerializeField] private List<Tile> failTiles;
[SerializeField] private Tile plusTile;
@@ -43,6 +44,7 @@ public class EventControls : MonoBehaviour
private EventControlTile currentEventControl;
private bool isInBattle = false;
private bool hasFailed = false;
private int buttonPressAnimationAccumalator = 0;
private Collider2D currentPlayerCollider;
private Collider2D currentEnemyCollider;
@@ -177,6 +179,18 @@ public class EventControls : MonoBehaviour
if (currentEventControl == null)
currentEventControl = eventControlTilesInCycle.First(x => !x.isPlusTile && !x.isPerformed);
else
{
if (buttonPressAnimationAccumalator >= framesPerControlTile)
{
tilemap.SetTile(currentEventControl.position, currentEventControl.isPressed ? currentEventControl.pressedTile :
currentEventControl.tile);
currentEventControl.isPressed = !currentEventControl.isPressed;
buttonPressAnimationAccumalator = 0;
}
else
buttonPressAnimationAccumalator++;
}
if (Input.GetKeyDown(currentEventControl.keyCode))
{
@@ -203,7 +217,7 @@ public class EventControls : MonoBehaviour
return;
}
else if (eventCycleAccumalator >= eventCycleInSeconds * framesPerSecond)
else if (eventCycleAccumalator >= eventCycleInSeconds * framesPerSecond * player.GetStaminaDifficultyFactor())
{
eventTriggered = false;
isInBattle = false;
@@ -294,6 +308,7 @@ public class EventControls : MonoBehaviour
return new EventControlTile(TileToKeyMappings.TileToKey[randomNumber],
tiles[randomNumber],
pressedTiles[randomNumber],
successTiles[randomNumber],
failTiles[randomNumber],
position);
@@ -305,6 +320,7 @@ public class EventControls : MonoBehaviour
plusTile,
null,
null,
null,
position,
true);
}

View File

@@ -115,6 +115,7 @@ public class Player : MonoBehaviour
private void Hurt()
{
currentHealth = 3; // TODO: REMOVE!
currentHealth -= currentHealth > 0 ? 1 : 0;
healthBar.size = new Vector2(1.5f * currentHealth, this.healthBar.size.y);
@@ -181,6 +182,16 @@ public class Player : MonoBehaviour
{
rigidBody.velocity = new Vector2(actualRunSpeed * -1, rigidBody.velocity.y);
}
// Run
if (Input.GetKeyUp(KeyCode.RightArrow))
{
rigidBody.velocity = new Vector2(0, rigidBody.velocity.y);
}
else if (Input.GetKeyUp(KeyCode.LeftArrow))
{
rigidBody.velocity = new Vector2(0, rigidBody.velocity.y);
}
}
private bool IsPlayerOnGround()
@@ -289,4 +300,9 @@ public class Player : MonoBehaviour
isHurt = true;
Hurt();
}
public float GetStaminaDifficultyFactor()
{
return currentStamina / (startStamina * 1f);
}
}