private IEnumerator ActivatePlatformWithShow() { if (m_PlatformToActivate != null) { Time.timeScale = 0f; StartCoroutine(m_Camera.SetTarget(m_PlatformToActivate.gameObject.transform, 1f)); //show change state m_PlatformToActivate.SetActivateByCompanion(false); GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = false; //do not allow player to move yield return(new WaitForSecondsRealtime(m_ShowTime)); //time before return camera on player GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = true; //return player's control yield return(m_Camera.SetTarget(GameMaster.Instance.m_Player.transform.GetChild(0).transform, 1f)); //delay to apply damping GameMaster.Instance.SaveState(transform.name, 0, GameMaster.RecreateType.Object); //save gameObject state Time.timeScale = 1f; } else { Debug.LogError($"ActivationSwitch.ActivatePlaformWithShow: {transform.name} hadn't any attached platform; Destroying switch without show"); } Destroy(gameObject); //destroy this gameObject }
private IEnumerator ShowChangesWithCam() { //show changes to player with camera (if m_ShowWithCam attached to the script) if (m_ShowWithCam != null) { Time.timeScale = 0f; GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = false; //do not allow player to move StartCoroutine(m_Camera.SetTarget(m_ShowWithCam, 1f)); //show door that open yield return(new WaitForSecondsRealtime(m_CamShowTime)); GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = true; //return player's control yield return(m_Camera.SetTarget(GameMaster.Instance.m_Player.transform.GetChild(0), 1f)); //show door that open Time.timeScale = 1f; } }
private IEnumerator ShowOpenedDoor() { if (m_DoorToShow != null && m_IsShowOncamera) { m_IsShowOncamera = false; Time.timeScale = 0f; GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = false; //do not allow player to move StartCoroutine(m_Camera.SetTarget(m_DoorToShow, 1f)); yield return(new WaitForSecondsRealtime(m_ShowDuration)); GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = true; //return player's control yield return(m_Camera.SetTarget(GameMaster.Instance.m_Player.transform.GetChild(0).transform, 1f)); Time.timeScale = 1f; GameMaster.Instance.SaveState(transform.name, 0, GameMaster.RecreateType.Camera); } }
private void Revive() { playerWithGravitySC.gameObject.SetActive(true); fuckedUp = false; playerWithGravitySC.Start(); Camera2DFollowSC.SetTarget(playerWithGravitySC.bodyBeingOrbited.transform.position); revive.gameObject.SetActive(false); reviveExp.SetActive(false); HighScoreSC.CongratulateNewHighScore(false); PlayerPrefs.SetInt("restarted", 1); }
bool CelestialInsideTrajectory() { int i = 0; Vector3 celestialPos = IPlantCelestialsSC.getCelestialsQueue().Peek().transform.position; // Debug.Log(celestialPos); bool a, b, c, d; //switches so that each statement only can be true once a = b = c = d = true; for (int j = 0; j < nbrOfTrajectoryPoints; j++) { int behindJ = j + nbrOfTrajectoryPoints - 1; int infrontJ = j + nbrOfTrajectoryPoints + 1; Vector2 behindJVector = trajectoryPoints[behindJ % (nbrOfTrajectoryPoints)] - trajectoryPoints[j]; Vector2 infronJVector = trajectoryPoints[infrontJ % (nbrOfTrajectoryPoints)] - trajectoryPoints[j]; float deltaXInfront = Mathf.Abs(trajectoryPoints[j].x - trajectoryPoints[infrontJ % (nbrOfTrajectoryPoints)].x); float deltaYInfront = Mathf.Abs(trajectoryPoints[j].y - trajectoryPoints[infrontJ % (nbrOfTrajectoryPoints)].y); float deltaXBehind = Mathf.Abs(trajectoryPoints[j].x - trajectoryPoints[behindJ % (nbrOfTrajectoryPoints)].x); float deltaYBehind = Mathf.Abs(trajectoryPoints[j].y - trajectoryPoints[behindJ % (nbrOfTrajectoryPoints)].y); float shorterDX = deltaXInfront < deltaXBehind ? deltaXInfront : deltaXBehind; float longerDX = deltaXInfront > deltaXBehind ? deltaXInfront : deltaXBehind; float shorterDY = deltaYInfront < deltaYBehind ? deltaYInfront : deltaYBehind; float longerDY = deltaYInfront > deltaYBehind ? deltaYInfront : deltaYBehind; if (Mathf.Abs(trajectoryPoints[j].y - celestialPos.y) <= shorterDY / 2 || Mathf.Abs(trajectoryPoints[j].y - celestialPos.y) <= longerDY / 2) { if (trajectoryPoints[j].x > celestialPos.x && a) { i++; a = false; } else if (trajectoryPoints[j].x < celestialPos.x && b) { i++; b = false; } } else if (Mathf.Abs(trajectoryPoints[j].x - celestialPos.x) <= shorterDX / 2 || Mathf.Abs(trajectoryPoints[j].x - celestialPos.x) <= longerDX / 2) { if (trajectoryPoints[j].y > celestialPos.y && c) { i++; c = false; } else if (trajectoryPoints[j].y < celestialPos.y && d) { i++; d = false; } } } Debug.Log("i: " + i + ", a: " + a + ", b: " + b + ", c: " + c + ", d: " + d); if (i == 4) { successfulCelestial = IPlantCelestialsSC.getCelestialsQueue().Peek(); camera2DFollowSC.SetTarget(successfulCelestial.transform.position); camera2DFollowSC.SpeedIncrease(); celestialInside = true; return(true); } else { i = 0; } return(false); }
void ShowExit() { cameraFollow.SetTarget(end.onScreenTransform); Invoke("ShowExposition", showExpositionDelay); }