private IEnumerator AIFlap() { while (true) { if (agent.GetOutputs()[0] >= 0.75f) { Flap(); } yield return(new WaitForSeconds(aiActionDeley)); } }
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; } } }
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; }