Ejemplo n.º 1
0
 private IEnumerator AIFlap()
 {
     while (true)
     {
         if (agent.GetOutputs()[0] >= 0.75f)
         {
             Flap();
         }
         yield return(new WaitForSeconds(aiActionDeley));
     }
 }
Ejemplo n.º 2
0
    void Update()
    {
        if (isAI)
        {
            if (agent.GetNEAT() != null)
            {
                float[] output = agent.GetOutputs();

                float dir = output[0];

                if (dir != 0)
                {
                    Move(dir);
                }
                else if (rb2d.velocity.y < 0.1f)
                {
                    rb2d.velocity = new Vector2(0, rb2d.velocity.y);
                }

                if (output[1] > 0.5f)
                {
                    jump = true;
                }
            }
        }
        else
        {
            float dir = Input.GetAxis("Horizontal");

            if (dir != 0)
            {
                Move(dir);
            }
            else if (rb2d.velocity.y < 0.1f)
            {
                rb2d.velocity = new Vector2(0, rb2d.velocity.y);
            }

            if (Input.GetButton("Jump"))
            {
                jump = true;
            }
        }
    }
Ejemplo n.º 3
0
    private void Update()
    {
        synkBool = false;

        if (isAi)
        {
            float[] outputs = agent.GetOutputs();

            //rotate
            if (outputs[0] >= 0.5f)
            {
                Rotate(true);
            }
            else if (outputs[0] <= -0.5f)
            {
                Rotate(false);
            }

            //move
            if (outputs[1] >= 0.5f)
            {
                Move(false);
            }
            else if (outputs[0] <= -0.5f)
            {
                Move(true);
            }

            //place
            if (outputs[2] >= 0.5f)
            {
                lastMovetime    = currentMoveTime;
                currentMoveTime = 0;
            }
            else if (outputs[2] <= -0.5f)
            {
                currentMoveTime = lastMovetime;
            }
        }
        else
        {
            if (Input.GetKeyDown(KeyCode.UpArrow))
            {
                Rotate(true);
            }

            if (Input.GetKeyDown(KeyCode.DownArrow))
            {
                Rotate(false);
            }

            if (Input.GetKeyDown(KeyCode.LeftArrow))
            {
                Move(false);
            }

            if (Input.GetKeyDown(KeyCode.RightArrow))
            {
                Move(true);
            }


            if (Input.GetKey(KeyCode.LeftArrow))
            {
                if (waitTime < framesWaitKeyDown)
                {
                    waitTime++;
                }
                else
                {
                    Move(false);
                }
            }


            if (Input.GetKey(KeyCode.RightArrow))
            {
                if (waitTime < framesWaitKeyDown)
                {
                    waitTime++;
                }
                else
                {
                    Move(true);
                }
            }


            if (Input.GetKeyUp(KeyCode.RightArrow) || Input.GetKeyUp(KeyCode.LeftArrow))
            {
                waitTime = 0;
            }

            if (Input.GetKeyDown(KeyCode.Space))
            {
                lastMovetime    = currentMoveTime;
                currentMoveTime = 0;
            }

            if (Input.GetKeyUp(KeyCode.Space))
            {
                currentMoveTime = lastMovetime;
            }
        }

        synkBool = true;
    }