void LandCompleteDelegate(tk2dAnimatedSprite sprite, int clipId) { /* if(dJump == DirectionJump.left){ sJump = StateJump.none; anim.Play("Idle_Left"); anim.animationCompleteDelegate = null; charMovement.state = CharacterMovement.states.idleLeft; } else if(dJump == DirectionJump.right){ sJump = StateJump.none; anim.Play("Idle_Right"); anim.animationCompleteDelegate = null; charMovement.state = CharacterMovement.states.idleRight; } charMovement.landing = false; doneLanding = true; falling = false;*/ if(lastClip == "Idle_Left" || lastClip == "Walk_Left"){ dJump = DirectionJump.left; sJump = StateJump.none; anim.Play("Idle_Left"); anim.animationCompleteDelegate = null; charMovement.state = CharacterMovement.states.idleLeft; } else if(lastClip == "Idle_Right" || lastClip == "Walk_Right"){ dJump = DirectionJump.right; sJump = StateJump.none; anim.Play("Idle_Right"); anim.animationCompleteDelegate = null; charMovement.state = CharacterMovement.states.idleRight; } charMovement.landing = false; doneLanding = true; falling = false; throwingRock = false; charMovement.throwingRock = false; }
// Update is called once per frame void Update() { // Jump direction //if(charMovement.state == CharacterMovement.states.jump && !anim.IsPlaying("InitialJump_Left")) //{ if(Input.GetKeyDown(KeyCode.F) && !throwingRock && canThrowRock ){ throwingRock = true; if(dJump == DirectionJump.left || lastClip == "Idle_Left" || lastClip == "Walk_Left"){ anim.Play("Throw_Left"); } else if(dJump == DirectionJump.right || lastClip == "Idle_Right" || lastClip == "Walk_Right"){ anim.Play("Throw_Right"); } anim.animationCompleteDelegate = ThrowCompleteDelegate; anim.animationEventDelegate = RockDelegate; /*Vector3 loc = this.transform.position; if(isRockLeft){ loc.x -= 2; } else{ loc.x += 2; } loc.y += 1f; Instantiate(rockPrefab, loc, Quaternion.identity);*/ } if(sJump == StateJump.air) { if (dJump == DirectionJump.left) { if (Input.GetKey(KeyCode.D) && !Input.GetKey(KeyCode.A)) { dJump = DirectionJump.right; lastClip = "Idle_Right"; anim.Play("Jump_Right"); moveLanternRight(); } } else if (dJump == DirectionJump.right) { if (Input.GetKey(KeyCode.A) && !Input.GetKey(KeyCode.D)) { dJump = DirectionJump.left; lastClip = "Idle_Left"; anim.Play("Jump_Left"); moveLanternLeft(); } } } //} //Jumping animation if(charMovement.inCutscene){ this.transform.FindChild("Hero_Sprite").GetComponent<MeshRenderer>().enabled = false; anim.Stop(); } else{ this.transform.FindChild("Hero_Sprite").GetComponent<MeshRenderer>().enabled = true; } if(charMovement.state == CharacterMovement.states.jump && sJump == StateJump.none && !anim.IsPlaying("InitialJump_Left")){ doneLanding = false; if (lastClip == "Idle_Left" || lastClip == "Walk_Left"){ dJump = DirectionJump.left; sJump = StateJump.launch; anim.Play("InitialJump_Left"); anim.animationCompleteDelegate = JumpCompleteDelegate; } if (lastClip == "Idle_Right" || lastClip == "Walk_Right"){ dJump = DirectionJump.right; sJump = StateJump.launch; anim.Play("InitialJump_Right"); anim.animationCompleteDelegate = JumpCompleteDelegate; } } //falling animation else if(!charMovement.isGrounded && !anim.IsPlaying("Falling_Left")&& !falling && charMovement.state != CharacterMovement.states.jump && !throwingRock){ charMovement.state = CharacterMovement.states.falling; falling = true; doneLanding = false; dJump = DirectionJump.left; sJump = StateJump.air; if(lastClip == "Idle_Right" || lastClip == "Walk_Right"){ anim.Play("Falling_Right"); anim.animationCompleteDelegate = null; } else if(lastClip == "Idle_Left" || lastClip == "Walk_Left"){ anim.Play("Falling_Left"); anim.animationCompleteDelegate = null; }; } //Landing animation else if(charMovement.landing && !anim.IsPlaying("Land_Right") && !anim.IsPlaying("Land_Left")){ if(lastClip == "Idle_Right" || lastClip == "Walk_Right"){ anim.Play("Land_Right"); anim.animationCompleteDelegate = LandCompleteDelegate; } else if(lastClip == "Idle_Left" || lastClip == "Walk_Left"){ anim.Play("Land_Left"); anim.animationCompleteDelegate = LandCompleteDelegate; } if(audioState == AudioState.grass) audio.playGrassLanding(); else if (audioState == AudioState.dry) audio.playDryLanding(); else if (audioState == AudioState.wet) audio.playWetLanding(); } //Idle Left animation else if(charMovement.state == CharacterMovement.states.idleLeft && !anim.IsPlaying("Land_Left") && !anim.IsPlaying("Idle_Left") && !throwingRock){ anim.Play("Idle_Left"); anim.animationCompleteDelegate = null; lastClip = "Idle_Left"; } else if(charMovement.state == CharacterMovement.states.idleLeft && !anim.IsPlaying("Land_Left") && !anim.IsPlaying("Idle_Left") && throwingRock){ charMovement.throwingRock = true; } //Walking Left animation else if(charMovement.state == CharacterMovement.states.walkLeft && doneLanding && !anim.IsPlaying("Walk_Left") && !throwingRock){ anim.Play("Walk_Left"); anim.animationEventDelegate = WalkingEventDelegate; anim.animationCompleteDelegate = null; lastClip = "Walk_Left"; moveLanternLeft(); //if(audioState == AudioState.grass) } else if(charMovement.state == CharacterMovement.states.walkLeft && doneLanding && !anim.IsPlaying("Walk_Left") && throwingRock){ charMovement.throwingRock = true; } //Idle Right animation else if(charMovement.state == CharacterMovement.states.idleRight && !anim.IsPlaying("Land_Right") && !anim.IsPlaying("Idle_Right") && !throwingRock){ anim.Play("Idle_Right"); anim.animationCompleteDelegate = null; lastClip = "Idle_Right"; } else if(charMovement.state == CharacterMovement.states.idleRight && !anim.IsPlaying("Land_Right") && !anim.IsPlaying("Idle_Right") && throwingRock){ charMovement.throwingRock = true; } //Walking Right animation else if(charMovement.state == CharacterMovement.states.walkRight && doneLanding && !anim.IsPlaying("Walk_Right") && !throwingRock){ anim.Play("Walk_Right"); anim.animationCompleteDelegate = null; anim.animationEventDelegate = WalkingEventDelegate; lastClip = "Walk_Right"; moveLanternRight(); } }