public void UpdateSprite(PlayerSpriteState spriteState) { // Debug.Log("Setting sprite state: " + spriteState); if (spriteState == state) { return; } animationCount = 0; state = spriteState; Animate(); }
public override void Begin() { base.Begin(); Player player = this.gameObject.GetComponent <Player>(); int dir = (int)player.GetDirection(); Vector2[] walkingSprite1Collider = { new Vector2(-0.5f, 0.5f), new Vector2(-0.5f, -0.5f), new Vector2(0.5f, -0.5f), new Vector2(0.5f, 0.5f) }; PlayerSpriteState idleSprite = new PlayerSpriteState(this.listenerId, "DefaultTempPlayer"); PlayerSpriteState walkingSpriteForward = new PlayerSpriteState(this.listenerId, "DefaultTempPlayer"); PlayerSpriteState walkingSpriteBackward = new PlayerSpriteState(this.listenerId, "DefaultTempPlayer"); PlayerSpriteState chargeSprite; PlayerSpriteState dashSprite; PlayerSpriteState quickStepSpriteForward; PlayerSpriteState quickStepSpriteBackward; PlayerSpriteState quickStepSpritePause = new PlayerSpriteState(this.listenerId, "DefaultTempPlayer"); if (dir > 0) { chargeSprite = new PlayerSpriteState(this.listenerId, "Player/LookingRight/Attacking/Attacking1", walkingSprite1Collider, dir); dashSprite = new PlayerSpriteState(this.listenerId, "Player/LookingRight/Attacking/Attacking2", walkingSprite1Collider, dir); quickStepSpriteForward = new PlayerSpriteState(this.listenerId, "Player/LookingRight/QuickStep/QuickStep1", walkingSprite1Collider, dir); quickStepSpriteBackward = new PlayerSpriteState(this.listenerId, "Player/LookingLeft/QuickStep/QuickStep1", walkingSprite1Collider, dir); } else { chargeSprite = new PlayerSpriteState(this.listenerId, "Player/LookingLeft/Attacking/Attacking1", walkingSprite1Collider, dir); dashSprite = new PlayerSpriteState(this.listenerId, "Player/LookingLeft/Attacking/Attacking2", walkingSprite1Collider, dir); quickStepSpriteForward = new PlayerSpriteState(this.listenerId, "Player/LookingLeft/QuickStep/QuickStep1", walkingSprite1Collider, dir); quickStepSpriteBackward = new PlayerSpriteState(this.listenerId, "Player/LookingRight/QuickStep/QuickStep1", walkingSprite1Collider, dir); } /* * The below is stuff from when I was working on basic animation * if (dir > 0) { * idleSprite = new PlayerSpriteState(this.listenerId, "Player/LookingRight/Idle/idle1", 0.15, walkingSprite1ColliderRight, dir); * idleSprite.AddSequencedSprite("Player/LookingRight/Idle/idle2", 0.15); * idleSprite.AddSequencedSprite("Player/LookingRight/Idle/idle3", 0.15); * idleSprite.AddSequencedSprite("Player/LookingRight/Idle/idle4", 0.15); * idleSprite.AddSequencedSprite("Player/LookingRight/Idle/idle5", 0.15); * idleSprite.AddSequencedSprite("Player/LookingRight/Idle/idle6", 0.15); * walkingSprite = new PlayerSpriteState(this.listenerId, "Player/LookingRight/Walking/walking1", 0.15, walkingSprite1ColliderRight, dir); * walkingSprite.AddSequencedSprite("Player/LookingRight/Walking/walking3", 0.15); * } else { * idleSprite = new PlayerSpriteState(this.listenerId, "Player/LookingLeft/Idle/idle1", 0.15, walkingSprite1ColliderLeft, dir); * idleSprite.AddSequencedSprite("Player/LookingLeft/Idle/idle2", 0.15); * idleSprite.AddSequencedSprite("Player/LookingLeft/Idle/idle3", 0.15); * idleSprite.AddSequencedSprite("Player/LookingLeft/Idle/idle4", 0.15); * idleSprite.AddSequencedSprite("Player/LookingLeft/Idle/idle5", 0.15); * idleSprite.AddSequencedSprite("Player/LookingLeft/Idle/idle6", 0.15); * walkingSprite = new PlayerSpriteState(this.listenerId, "Player/LookingLeft/Walking/walking1", 0.15, walkingSprite1ColliderLeft, dir); * walkingSprite.AddSequencedSprite("Player/LookingLeft/Walking/walking3", 0.15); * }*/ PlayerSpriteState dashChargingSprite = new PlayerSpriteState(this.listenerId, "PlayerDashCharging"); PlayerSpriteState feintSprite = new PlayerSpriteState(this.listenerId, "PlayerDashCharging"); PlayerSpriteState winCollisionSprite = new PlayerSpriteState(this.listenerId, "DefaultTempPlayerWinCollision"); PlayerSpriteState loseCollisionSprite = new PlayerSpriteState(this.listenerId, "DefaultTempPlayerLoseCollision"); idleSprite.AddStateChange("charge", chargeSprite); idleSprite.AddStateChange("dashCharge", dashChargingSprite); idleSprite.AddStateChange("feint", feintSprite); idleSprite.AddStateChange("moveForward", walkingSpriteForward); idleSprite.AddStateChange("moveBackward", walkingSpriteBackward); walkingSpriteForward.AddStateChange("stop", idleSprite); walkingSpriteForward.AddStateChange("quickStep", quickStepSpriteForward); walkingSpriteForward.AddStateChange("moveBackward", idleSprite); walkingSpriteForward.AddStateChange("charge", chargeSprite); walkingSpriteForward.AddStateChange("dashCharge", dashChargingSprite); walkingSpriteForward.AddStateChange("feint", feintSprite); walkingSpriteForward.AddStateChange("collisionWin", winCollisionSprite); walkingSpriteForward.AddStateChange("collisionLoss", loseCollisionSprite); walkingSpriteBackward.AddStateChange("stop", idleSprite); walkingSpriteBackward.AddStateChange("quickStep", quickStepSpriteBackward); walkingSpriteBackward.AddStateChange("moveForward", idleSprite); walkingSpriteBackward.AddStateChange("charge", chargeSprite); walkingSpriteBackward.AddStateChange("dashCharge", dashChargingSprite); walkingSpriteBackward.AddStateChange("feint", feintSprite); walkingSpriteBackward.AddStateChange("collisionWin", winCollisionSprite); walkingSpriteBackward.AddStateChange("collisionLoss", loseCollisionSprite); quickStepSpriteForward.AddStateChange("stop", quickStepSpritePause); quickStepSpriteForward.AddStateChange("charge", chargeSprite); quickStepSpriteForward.AddStateChange("dashCharge", dashChargingSprite); quickStepSpriteForward.AddStateChange("feint", feintSprite); quickStepSpriteForward.AddStateChange("collisionWin", winCollisionSprite); quickStepSpriteForward.AddStateChange("collisionLoss", loseCollisionSprite); quickStepSpriteBackward.AddStateChange("stop", quickStepSpritePause); quickStepSpriteBackward.AddStateChange("charge", chargeSprite); quickStepSpriteBackward.AddStateChange("dashCharge", dashChargingSprite); quickStepSpriteBackward.AddStateChange("feint", feintSprite); quickStepSpriteBackward.AddStateChange("collisionWin", winCollisionSprite); quickStepSpriteBackward.AddStateChange("collisionLoss", loseCollisionSprite); quickStepSpritePause.AddStateChange("stop", idleSprite); quickStepSpritePause.AddStateChange("charge", chargeSprite); quickStepSpritePause.AddStateChange("dashCharge", dashChargingSprite); quickStepSpritePause.AddStateChange("feint", feintSprite); quickStepSpritePause.AddStateChange("collisionWin", winCollisionSprite); quickStepSpritePause.AddStateChange("collisionLoss", loseCollisionSprite); idleSprite.AddStateChange("collisionWin", winCollisionSprite); idleSprite.AddStateChange("collisionLoss", loseCollisionSprite); chargeSprite.AddStateChange("stop", loseCollisionSprite); chargeSprite.AddStateChange("collisionWin", winCollisionSprite); chargeSprite.AddStateChange("collisionLoss", loseCollisionSprite); dashChargingSprite.AddStateChange("dash", dashSprite); dashChargingSprite.AddStateChange("collisionWin", winCollisionSprite); dashChargingSprite.AddStateChange("collisionLoss", loseCollisionSprite); dashSprite.AddStateChange("stop", loseCollisionSprite); dashSprite.AddStateChange("collisionWin", winCollisionSprite); dashSprite.AddStateChange("collisionLoss", loseCollisionSprite); feintSprite.AddStateChange("stop", idleSprite); feintSprite.AddStateChange("charge", chargeSprite); feintSprite.AddStateChange("dashCharge", dashChargingSprite); feintSprite.AddStateChange("collisionWin", winCollisionSprite); feintSprite.AddStateChange("collisionLoss", loseCollisionSprite); winCollisionSprite.AddStateChange("recover", idleSprite); winCollisionSprite.AddStateChange("collisionLoss", loseCollisionSprite); loseCollisionSprite.AddStateChange("recover", idleSprite); loseCollisionSprite.AddStateChange("collisionWin", winCollisionSprite); this.AddCurrentState(idleSprite); }
private void Update() { var horizontal = Input.GetAxisRaw("Horizontal"); var horizontalAbs = Mathf.Abs(horizontal); var vertical = Input.GetAxisRaw("Vertical"); var verticalAbs = Mathf.Abs(vertical); if (abilityCharge < 10) { abilityCharge += Time.deltaTime; AbilityRechargeBar.value = abilityCharge; } if (HasWon && !winTrigger) { winTrigger = true; rb.velocity = Vector2.zero; animator.UpdateSprite(PlayerSpriteState.Win); OnWin(); } if (HP <= 0 && !deathTrigger && !HasWon) { deathTrigger = true; IsDead = true; rb.velocity = Vector2.zero; animator.UpdateSprite(PlayerSpriteState.Death); OnDeath(); } else if (!deathTrigger && !IsDead && !HasWon) { if (Input.GetKeyDown(KeyCode.E) && OnTrapDoor && !gamePaused) { TrapDoorText.gameObject.SetActive(false); LastTrapDoor.Lock(); loadWOrld(CurrentLevel + 1); WorldController.StartWave(); } if (Input.GetKeyDown(KeyCode.C) && !gamePaused) { if (customizationOpen) { customizationOpen = false; CustomizationWindow.SetActive(customizationOpen); } else { customizationOpen = true; CustomizationWindow.SetActive(customizationOpen); } } if (Input.GetKeyDown(KeyCode.Q) && Bombs > 0) { var bombGO = Instantiate(BombPrefab); bombGO.transform.position = transform.localPosition; IncreaseStat(PlayerStats.BOMB, -1); } if (Input.GetKeyDown(KeyCode.Space) && abilityCharge >= 10f) { Teleporting = true; abilityCharge = 0; AbilityRechargeBar.value = abilityCharge; var teleAimGO = Instantiate(TeleAimPrefab); teleAimGO.transform.position = UnityEngine.Camera.main.ScreenToWorldPoint(Input.mousePosition); teleAimGO.GetComponent <Teleport>().player = this; } if (Input.GetKeyDown(KeyCode.P)) { PauseGame(); } if (Input.GetAxisRaw("Fire1") > 0.1f && !gamePaused && !Teleporting) { Vector2 dir = UnityEngine.Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position; float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg; Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.forward); Quaternion spriteRotation = Quaternion.AngleAxis(angle - 45, Vector3.forward); ProjectileParameters = new ProjectileParameters() { Texture = ProjTexture, Speed = 15f, Damage = DMG, OrbitSpeed = 25f, OrbitLength = 0.5f, OrbitOffset = 0 }; var proj = ProjectileParameters.Clone(); proj.Position = transform.position; proj.Rotatoin = rotation; if (Time.time - lastShoot > DPS) { Projectile.InstantiateProjectile(proj, spriteRotation); lastShoot = Time.time; } } if (horizontalAbs < 0.1f && verticalAbs < 0.1f && !gamePaused) { rb.velocity = Vector2.zero; animator.UpdateSprite(LastDir); } if (horizontalAbs > verticalAbs && !gamePaused) { animator.UpdateSprite(horizontal > 0 ? PlayerSpriteState.Right : PlayerSpriteState.Left); LastDir = horizontal > 0 ? PlayerSpriteState.Right : PlayerSpriteState.Left; } rb.velocity = new Vector2(horizontal * Speed * Time.fixedDeltaTime, vertical * Speed * Time.fixedDeltaTime); } if (Input.GetKeyDown(KeyCode.Escape)) { Application.Quit(); } }