Esempio n. 1
0
 void Start()
 {
     HeroDefiner.currentHero.OnJumped.Subscribe(jump => HeroJumped(jump.isKick));
     groundChecker = transform.Find("GroundChecker").GetComponent <GroundChecker>();
     transform.Find("DontWannaFallR").GetComponent <DontWannaFall>().about2fall  += Turn;
     transform.Find("DontWannaFallL").GetComponent <DontWannaFall>().about2fall  += Turn;
     transform.Find("Collider2Wall").GetComponent <Collider2Wall>().touched2Wall += Turn;
     state = toRightFirst ? GierState.BeforeFindingR : GierState.BeforeFindingL;
 }
Esempio n. 2
0
 void Turn(object sender, EventArgs e)
 {
     if (state == GierState.BeforeFindingL)
     {
         state             = GierState.BeforeFindingR;
         eyeRenderer.flipX = false;
     }
     else if (state == GierState.BeforeFindingR)
     {
         state             = GierState.BeforeFindingL;
         eyeRenderer.flipX = true;
     }
 }
Esempio n. 3
0
    void Update()
    {
        RigidBody.velocity = new Vector2(0, RigidBody.velocity.y);

        switch (state)
        {
        case GierState.BeforeFindingR:
            if (NearHero())
            {
                Find();
            }

            RigidBody.MoveX_ConsideringGravity(walkSpeed);
            HontaiSR.transform.Rotate(-normalRotateSpeed);
            break;

        case GierState.BeforeFindingL:
            if (NearHero())
            {
                Find();
            }

            RigidBody.MoveX_ConsideringGravity(-walkSpeed);
            HontaiSR.transform.Rotate(normalRotateSpeed);
            break;

        case GierState.FindingNow:
            findingCount++;
            if (findingCount > framesBeforeRun)
            {
                state = GierState.Running;
                eyeRenderer.sprite = eyeRunning;
                findingCount       = 0;
            }
            break;

        case GierState.Running:
            if (HeroDefiner.CurrentPos.x > transform.position.x + 10)
            {
                RigidBody.MoveX_ConsideringGravity(runSpeed);
                HontaiSR.transform.Rotate(-runningRotateSpeed);
                eyeRenderer.flipX = false;
            }
            if (HeroDefiner.CurrentPos.x < transform.position.x - 10)
            {
                RigidBody.MoveX_ConsideringGravity(-runSpeed);
                HontaiSR.transform.Rotate(runningRotateSpeed);
                eyeRenderer.flipX = true;
            }

            if (MyMath.DistanceXY(HeroDefiner.CurrentPos, transform.position) > distanceToMissHero)
            {
                if (RigidBody.velocity.x > 0)
                {
                    state = GierState.BeforeFindingR;
                }
                else
                {
                    state = GierState.BeforeFindingL;
                }
                eyeRenderer.sprite = eyeNormal;
            }
            break;
        }
    }
Esempio n. 4
0
 void Find()
 {
     state = GierState.FindingNow;
     eyeRenderer.sprite = eyeFinding;
     eyeRenderer.flipX  = HeroDefiner.CurrentPos.x < transform.position.x;
 }