// Update is called once per frame void Update() { switch (estado) { case EstadoDePersonagem.aPasseio: mov.AplicadorDeMovimentos(controle.ValorParaEixos()); break; case EstadoDePersonagem.comMeuCriature: case EstadoDePersonagem.parado: mov.AplicadorDeMovimentos(Vector3.zero); break; } }
// Update is called once per frame void Update() { switch (estado) { case CreatureState.parado: case CreatureState.emDano: case CreatureState.aplicandoGolpe: if (mov != null) { mov.AplicadorDeMovimentos(Vector3.zero, meuCriatureBase.CaracCriature.distanciaFundamentadora, transform); } else { SetaMov(); } break; case CreatureState.seguindo: case CreatureState.selvagem: ia.Update(); break; case CreatureState.aPasseio: case CreatureState.emLuta: Vector3 dir = Vector3.zero; if (controle) { dir = controle.ValorParaEixos(); if (estado == CreatureState.emLuta) { dir = direcaoInduzida(dir.x, dir.z); } } else { controle = FindObjectOfType <AndroidController>(); } if (mov == null) { SetaMov(); } else { mov.AplicadorDeMovimentos(dir, meuCriatureBase.CaracCriature.distanciaFundamentadora, transform); } break; } }
void FinalizaGiro() { EventAgregator.Publish(new StandardSendGameEvent(EventKey.disparaSom, SoundEffectID.pedrasQuebrando)); EventAgregator.Publish(new StandardSendGameEvent(EventKey.requestShakeCam, ShakeAxis.z, 10, 2f)); transform.rotation = Quaternion.identity; mov.ChangeGravityScale(5); mov.AplicadorDeMovimentos(-DirecaoNoPlano.NoUpNormalizado(transform.position, GameController.g.Manager.transform.position)); estado = EstadoDaqui.pulinhosPreparatorios; contDePulinhos = 0; tempoDecorrido = 0; }
// Update is called once per frame void Update() { comandR.Update(); //bControle.Update(); switch (estado) { case EstadoDePersonagem.aPasseio: Vector3 V = comandR.VetorDirecao(); if (!GameController.g.HudM.MenuDePause.EmPause) { mov.AplicadorDeMovimentos(V); } break; case EstadoDePersonagem.comMeuCriature: case EstadoDePersonagem.parado: mov.AplicadorDeMovimentos(Vector3.zero); break; } }
public bool UpdatePosition() { bool retorno = false; if (indiceDaDirecao < path.corners.Length) { Vector3 pos = oControlado.transform.position; mov.AplicadorDeMovimentos((path.corners[indiceDaDirecao] - pos).normalized); RaycastHit hit = new RaycastHit(); Vector3 proj = Vector3.ProjectOnPlane((path.corners[indiceDaDirecao] - pos), Vector3.up); if (Vector3.Distance(oControlado.transform.forward, proj.normalized) < 0.5f) { if (Physics.Raycast(pos, oControlado.transform.forward, out hit, 1)) { if (Vector3.Angle(hit.normal, Vector3.up) > 70 && Vector3.Angle(hit.normal, Vector3.up) < 110 && !mov._Pulo.EstouPulando) { mov._Pulo.IniciaAplicaPulo(); } } } if (Vector3.Distance(path.corners[indiceDaDirecao], pos) < 1) { indiceDaDirecao++; } } else { mov.Animador.PararAnimacao(); mov.AplicadorDeMovimentos(Vector3.zero); mov._Pulo.NaoEstouPulando(); retorno = true; } return(retorno); }
// Update is called once per frame public bool Update(MovimentacaoBasica mov, Vector3 vetorDirecao) { Transform transform = controle.transform; tempoDeDano += Time.deltaTime; alturaAtual = transform.position.y; //direcao = Vector3.zero; if ((alturaAtual < posInicial.y + alturaAlvo) && Mathf.Abs(transform.position.x - posInicial.x) < distanciaAlvo ) { if (tempoDeDano < tempoBase) { controle.velocity = new Vector2(direcao.x, direcao.y) * m_MaxSpeed; } else { vetorDirecao = vetorDirecao + direcao.normalized; mov.AplicadorDeMovimentos(vetorDirecao.normalized, false, false); } } if (tempoDeDano < tempoFinal) { return(false); } /* * if (alturaAtual < alturaDoDano + 0.5f) * { * direcao += 12 * Vector3.up; * } * if ((transform.position - posInicial).sqrMagnitude < esseGolpe.DistanciaDeRepulsao) * direcao += esseGolpe.VelocidadeDeRepulsao * esseGolpe.DirDeREpulsao; * * vMove = Vector3.Lerp(vMove, direcao, 10 * Time.deltaTime); * controle.Move(vMove * Time.deltaTime); * * * if (tempoDeDano > esseGolpe.TempoNoDano) * { * return false; * * }*/ return(true); }
public bool UpdateMove() { Vector3 dir = DirecaoNoPlano.NoUpNormalizado(dono.position, target); float distancia = Mathf.Abs(dono.position.x - target.x); float newVel = distancia > 0.5f?vel:vel * distancia; mov.AplicadorDeMovimentos(newVel * dir); if (distancia < 0.1f) { return(true); } return(false); }
protected override void Start() { mov.Iniciar(andador); posOriginal = transform.position; EventAgregator.AddListener(EventKey.triggerInfo, OnReceiveTriggerInfo); EventAgregator.AddListener(EventKey.animationPointCheck, OnReceivedAnimationPoint); base.Start(); new MyInvokeMethod().InvokeAoFimDoQuadro(() => { mov.AplicadorDeMovimentos( DirecaoNoPlano.NoUpNormalizado(transform.position, GameController.g.Manager.transform.position)); }); }
protected void UpdateMovendo() { mov.AplicadorDeMovimentos( Vector3.ProjectOnPlane(MovePoints[MoveTarget].position - transform.position, Vector3.up).normalized); if (Mathf.Abs(MovePoints[MoveTarget].position.x - transform.position.x) < 0.1f) { TempoDecorrido = 0; OnTargetCheck();//estado = EstadoDaqui.esperandoMove; TrocaMoveTarget(); } if (Vector2.Distance(GameController.g.Manager.transform.position, transform.position) < DISTANCIA_DE_ACELERACAO && Time.time - UltimaAcelerada > INTERVALO_ENTRE_INVESTIDAS ) { OnActionRequest();//PrepararInvestida(); } }
// Update is called once per frame void Update() { //Debug.DrawRay(transform.position, Vector3.up); switch (estado) { case CreatureState.parado: case CreatureState.emDano: case CreatureState.aplicandoGolpe: if (mov != null) { mov.AplicadorDeMovimentos(Vector3.zero, meuCriatureBase.CaracCriature.distanciaFundamentadora, transform); } else { SetaMov(); } break; case CreatureState.seguindo: case CreatureState.selvagem: ia.Update(); break; case CreatureState.aPasseio: case CreatureState.emLuta: Vector3 dir = Vector3.zero; if (comandR != null) { dir = comandR.VetorDirecao(); if (estado == CreatureState.emLuta) { dir = comandR.DirDeEixos(); dir = direcaoInduzida(dir.x, dir.z); } else { dir = comandR.VetorDirecao(); } } if (mov == null) { SetaMov(); } else { int temStatus = StatusTemporarioBase.ContemStatus(TipoStatus.amedrontado, meuCriatureBase); if (temStatus > -1) { dir *= 1 / (float)meuCriatureBase.StatusTemporarios[temStatus].Quantificador; } if (!GameController.g.HudM.MenuDePause.EmPause) { mov.AplicadorDeMovimentos(dir, meuCriatureBase.CaracCriature.distanciaFundamentadora, transform); } } break; } }
private void OnOpenExternalPanel(IGameEvent e) { RetornarComponentesAoPAdrao(); mov.AplicadorDeMovimentos(Vector3.zero); estado = EstadoDePersonagem.parado; }