// Use this for initialization void Start() { DpadButtons = new DpadButtons(); DpadButtons.playerNumber = PlayerNumber; ActorManager.instance.resettingScene = false; //ZZZ if (firstFrame) { if (ActorManager.instance.checkPoint.checkPointNumber == -1) { ActorManager.instance.checkPoint.checkPointNumber = 0; ActorManager.instance.checkPoint.playerSpawnPosition = transform.position; } transform.position = ActorManager.instance.checkPoint.playerSpawnPosition; firstFrame = false; } holdType = holdObjectType.Nothing; jumpIn = CactiParameters.JumpFrequency; Jumping = false; timeJump = 0; dm = FindObjectOfType <DialogManager>(); DialogBox = GameObject.FindGameObjectWithTag("panel"); }
// Update is called once per frame void Update() { DpadButtons.GetDpad(); if (player._ControllerState.IsCollidingUp && !collideUpPlaying) { ActorManager.instance.PlaySound("Land", 1f); collideUpPlaying = true; } if (player._ControllerState.IsGrounded && !wasGrounded) { collideUpPlaying = false; if (CactiParameters.JumpRestrictions == CactimanParameters.JumpBehavior.CanJumpAnywhereOnce) { CactiParameters.JumpRestrictions = CactimanParameters.JumpBehavior.CanJumpOnGround; } ActorManager.instance.PlaySound("Land", 1f); } if (!player._ControllerState.isStarRiding) { timeOnStar = 0f; } else { timeOnStar += Time.deltaTime; } if (State == CactimanParameters.PlayerState.Dead) { GO_PlayerSprite.GetComponent <Animator>().Play("Die"); gameObject.layer = LayerMask.NameToLayer("Intangible"); player.Active = false; switch (holdType) { case holdObjectType.Nothing: break; case holdObjectType.Bomb: heldObject.GetComponent <Bomb>().removeBomb(); break; case holdObjectType.Star: heldObject.GetComponent <SuperActor>().Remove(); break; default: break; } heldObject = null; holdType = holdObjectType.Nothing; } else if (State == CactimanParameters.PlayerState.InDialog) { getDialogInput(); checkSpikes(); } else { GetInput(); checkSpikes(); } wasGrounded = player._ControllerState.IsCollidingDown; }
private void GetInput() { if (player._ControllerState.IsGrounded) { timeInAir = 0f; } else { timeInAir += Time.deltaTime; } bool hasjumped = false; jumpIn -= Time.deltaTime; if (player._ControllerState.IsGrounded && heldObject == null) { if (DpadButtons.firstUp) { RaycastHit2D[] hits = Physics2D.BoxCastAll((Vector2)transform.position + player._Collider.offset, player._Collider.size, 0, Vector2.zero, Mathf.Infinity); if (hits.Length > 0) { bool enterDialog = false; foreach (var item in hits) { if (item.transform.gameObject.GetComponent <PowerPickUp>()) { item.transform.gameObject.GetComponent <PowerPickUp>().pickedUp(); } if (item.transform.gameObject.GetComponent <DialogTrigger>()) { enterDialog = true; State = CactimanParameters.PlayerState.InDialog; DialogBox.transform.parent.transform.position = new Vector2(item.transform.position.x + 65, item.transform.position.y - 380); DialogBox.GetComponent <Animator>().Play("DialogBoxAnim"); item.transform.gameObject.GetComponent <DialogTrigger>().TriggerDialogue(); break; } } if (enterDialog) { return; } } } } if (DpadButtons.firstA && canJump()) { //player.SetVerticalVelocity(CactiParameters.JumpMagnitude); player.Parameters.StarSnap = false; //player.addVerticalVelocity(CactiParameters.JumpMagnitude); jumpIn = CactiParameters.JumpFrequency; player.Parameters.IgnorePlatforms = true; hasjumped = true; Jumping = true; timeJump = 0; ActorManager.instance.PlaySound("JumpFinal", .8f); } if (Jumping) { if (player._ControllerState.IsCollidingUp) { player.Parameters.StarSnap = true; player.Parameters.IgnorePlatforms = false; Jumping = false; } if (DpadButtons.A) { } else { player.Parameters.StarSnap = true; player.Parameters.IgnorePlatforms = false; Jumping = false; } if (player._ControllerState.IsCollidingDown && timeJump > .01f) { player.Parameters.StarSnap = true; player.Parameters.IgnorePlatforms = false; Jumping = false; } if (timeJump > .21f) { player.Parameters.StarSnap = true; player.Parameters.IgnorePlatforms = false; Jumping = false; } } normalizedHorizontal = 0; if (DpadButtons.left && DpadButtons.right) { } else if (DpadButtons.left) { normalizedHorizontal += -1; //If you are dashing and grounded you cant change direction. Dash will change your direction if you are in air if (State == CactimanParameters.PlayerState.FullControll) { player._ControllerState.IsFacingRight = false; } } else if (DpadButtons.right) { normalizedHorizontal += 1; //If you are dashing and grounded you cant change direction. Dash will change your direction if you are in air if (State == CactimanParameters.PlayerState.FullControll) { player._ControllerState.IsFacingRight = true; } } if (timeOnStar != 0 && timeOnStar <= .15f) { normalizedHorizontal = 0; } if (DpadButtons.X && ActorManager.instance.hasStar && holdType == holdObjectType.Nothing) { holdType = holdObjectType.Star; Vector3 pos = new Vector3(transform.position.x - 4, transform.position.y + 9f, transform.position.z + 1f); heldObject = Instantiate(StarPrefab, pos, Quaternion.identity).GetComponentInChildren <SuperActor>(); } if (DpadButtons.Y && ActorManager.instance.hasBomb && holdType == holdObjectType.Nothing) { holdType = holdObjectType.Bomb; Vector3 pos = new Vector3(transform.position.x - 4, transform.position.y + 9f, transform.position.z + 1f); heldObject = Instantiate(BombPrefab, pos, Quaternion.identity).GetComponentInChildren <SuperActor>(); } if (hasjumped) { GO_PlayerSprite.GetComponent <Animator>().Play("Jump"); } else if (normalizedHorizontal != 0 && State == CactimanParameters.PlayerState.FullControll && player._ControllerState.IsGrounded && jumpIn != CactiParameters.JumpFrequency && jumpIn <= CactiParameters.JumpFrequency - .2f) { GO_PlayerSprite.GetComponent <Animator>().Play("Run"); } else if (jumpIn != CactiParameters.JumpFrequency && player._ControllerState.IsGrounded && jumpIn <= CactiParameters.JumpFrequency - .2f) { GO_PlayerSprite.GetComponent <Animator>().Play("Idle"); } if (player._ControllerState.IsFacingRight) { GO_PlayerSprite.GetComponent <SpriteRenderer>().flipX = false; GO_PlayerSprite.transform.position = transform.position; } else { GO_PlayerSprite.GetComponent <SpriteRenderer>().flipX = true; GO_PlayerSprite.transform.position = transform.position + new Vector3(24, 0, 0); } player.SetHorizontalVeloicty(normalizedHorizontal * 150); if (holdType != holdObjectType.Nothing && heldObject != null) { bool buttonReleased = false; switch (holdType) { case holdObjectType.Nothing: //This never happens break; case holdObjectType.Bomb: heldObject.transform.position = new Vector3(transform.position.x - 20, transform.position.y - 2, transform.position.z + 1); if (DpadButtons.Y) { } else { buttonReleased = true; } break; case holdObjectType.Star: heldObject.transform.parent.position = new Vector3(transform.position.x - 4, transform.position.y + 9f, transform.position.z + 1); if (DpadButtons.X) { } else { buttonReleased = true; } break; default: break; } if (!buttonReleased) { timeholdingobject += Time.deltaTime; } else { timeholdingobject = 0f; } if (heldObject.GetComponent <Throwable>().DoneSpawning&& buttonReleased) { //Throwing Vector2 throwVelocity = new Vector2(); if (player._ControllerState.IsFacingRight) { if (DpadButtons.up) { throwVelocity = new Vector2(150, 400); } else if (DpadButtons.down) { throwVelocity = new Vector2(150, -400); } else { throwVelocity = new Vector2(250, 200); } } else { if (DpadButtons.up) { throwVelocity = new Vector2(-150, 400); } else if (DpadButtons.down) { throwVelocity = new Vector2(-150, -400); } else { throwVelocity = new Vector2(-250, 200); } } heldObject.GetComponentInChildren <Throwable>().Throw(throwVelocity); holdType = holdObjectType.Nothing; heldObject = null; } else if (buttonReleased) { //LetGoTooEarly switch (holdType) { case holdObjectType.Nothing: break; case holdObjectType.Bomb: heldObject.GetComponent <Bomb>().removeBomb(); break; case holdObjectType.Star: heldObject.GetComponent <Star>().removeStar(); break; default: break; } heldObject = null; holdType = holdObjectType.Nothing; } } else if (heldObject == null) { holdType = holdObjectType.Nothing; } }