private void Construct(Rope rope, FollowCamera2D followCamera2D, PlayerStateFactory stateFactory, UiManager uiManager) { _rope = rope; _followCamera = followCamera2D; _stateFactory = stateFactory; _uiManager = uiManager; }
void Awake() { FollowCamera2D followCamera2D = SceneUtils.FindObject <FollowCamera2D>(); if (followCamera2D) { followCamera2D.AddEventListener(this.gameObject); } targetPosition = targetTransform.localPosition; startPosition = this.spawnPosition.transform.localPosition; }
private void OnValidate() { followCamera2D = FindObjectOfType <FollowCamera2D>(); dialogController = FindObjectOfType <DialogController>(); }
void Update() { CharacterController controller = GetComponent <CharacterController>(); string clipName; if (isSuper) { clipName = "Sidle"; if (isFire) { clipName = "Fidle"; } } else { clipName = "idle"; } bool isLand = controller.isGrounded; eDIR dir = dir_; bool move = false; FollowCamera2D fc = GetComponent <FollowCamera2D>(); if (velocity_.x < 0f) { Vector3 newPos = transform.position; if (newPos.x < -1.4f) { newPos.x = -1.4f; } transform.position = newPos; dir = eDIR.LEFT; move = true; } else if (velocity_.x > 0f) { Vector3 newPos = transform.position; if (fc && newPos.x > 1.4f + fc.scrollWidth) { newPos.x = 1.4f + fc.scrollWidth; } transform.position = newPos; dir = eDIR.RIGHT; move = true; } if (!isFinish) //---------------------------------------------------------------- STAGE UNFINISHED; { if (superMode) { if (sp.color.a >= 1) { isSuperModeColor = false; } else if (sp.color.a <= .5f) { isSuperModeColor = true; } if (isSuperModeColor) { sp.color = new Color(1, 1, 1, sp.color.a + .1f * Mathf.Ceil(Time.deltaTime)); } else { sp.color = new Color(1, 1, 1, sp.color.a - .1f * Mathf.Ceil(Time.deltaTime)); } } else { isSuperModeColor = false; sp.color = new Color(1, 1, 1, 1); } if (!isDie) { velocity_.x = Input.GetAxis("Horizontal") * accel_; } if (!isLand) { velocity_.y -= gravity * Time.deltaTime; } if (isLand) { if (Input.GetKeyDown(KeyCode.X)) { velocity_.y = jumpSpeed + accel_ * 0.5f; } blockHitFlag = true; } else { if (isSuper) { clipName = "Sjump"; if (isFire) { clipName = "Fjump"; } } else { clipName = "jump"; } if (Input.GetKeyUp(KeyCode.X)) { velocity_.y -= 1f; } } if (isFire) //-----------------------------------------------------fire!!!!!! { if (Input.GetKeyDown(KeyCode.Z)) { if (isFireBallDelay) { float posX; if (dir_ == eDIR.LEFT) { posX = transform.localPosition.x - 0.18f; } else { posX = transform.localPosition.x + 0.18f; } Instantiate(fireBall, new Vector3(posX, transform.localPosition.y + 0.13f, transform.localPosition.z), Quaternion.identity); isFireBallDelay = false; StartCoroutine("onFire", fireDelayNum); } } } if (move) { if (isLand) { if (Input.GetKey(KeyCode.Z)) { if (isSuper) { clipName = "Srun"; if (isFire) { clipName = "Frun"; } } else { clipName = "run"; } accel_ += 0.03f; if (accel_ > 2.5f) { accel_ = 2.5f; } } else { if (isSuper) { clipName = "Swalk"; if (isFire) { clipName = "Fwalk"; } } else { clipName = "walk"; } accel_ = 1f; } } } if (!isDie) { controller.Move(velocity_ * Time.deltaTime); } if (dir != dir_) { SetFlip(dir); accel_ = 1f; } if (!isDie) { if (clipName != clipName_) { SetClip(clipName); } } } else //---------------------------------------------------------------- STAGE FINISHED; { if (!isLand) { velocity_.y -= gravity * Time.deltaTime; } else { if (isSuper) { clipName = "Swalk"; if (isFire) { clipName = "Fwalk"; } } else { clipName = "walk"; } SetClip(clipName); accel_ = .5f; velocity_.x = accel_; finishObject.collider.enabled = false; } if (!GameMenneger.instance._stageComplete) { controller.Move(velocity_ * Time.deltaTime); } else { if (isSuper) { clipName = "Sidle"; if (isFire) { clipName = "Fidle"; } } else { clipName = "idle"; } SetClip(clipName); if (sp.color.a < 0) { //Debug.Log("next Stage"); } else { sp.color = new Color(1, 1, 1, sp.color.a - .05f * Mathf.Ceil(Time.deltaTime)); } } } if (isBounce) { isBounce = false; velocity_.y = 0f; velocity_.y -= 1f; } if (isRiversBounce) { isRiversBounce = false; velocity_.y = 0f; velocity_.y += 1.5f; } if (isDie) { StartCoroutine("playerDelayDieMotion", .3f); if (isPlayerDelayDieMotion) { if (!isPlayerDown) { Vector3 pos = transform.localPosition; pos.y += gravity / 2 * Time.deltaTime; transform.localPosition = pos; } } } if (isPlayerDown) //==========================player dir motion & enermy hit motion { isPlayerDelayDieMotion = false; Vector3 pos = transform.localPosition; pos.y -= gravity * Time.deltaTime; transform.localPosition = pos; GameMenneger.instance.setDie(true); } else if (transform.position.y < -0.9f) { chcon.collider.enabled = false; isDie = true; isRiversBounce = true; tk2dSpriteAnimator ani = GetComponent <tk2dSpriteAnimator>(); ani.Play("die"); controller.collider.isTrigger = true; StartCoroutine("playerDown", .5f); } }