Autor |
Mensagem |
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
Inteligencia artificial do Player - perseguição |
|
Sabem aquele sistema de perseguição padrão da engine? Queria adaptar ela ao player, pra quando eu apertasse uma tecla ele desativasse o controle do player e ativasse o sistema.
Eu tentei e ficou assim:
| | if IsKeyPress(strtoint('0x20')) then
if readglobalvar('distancia') > 6 then
begin
DisableMainActorControl;
if GetObjectAnimation('Player') <> 'run_' then
SetObjectAnimation('Player', 'run_');
PointObjectTo('Player', readglobalvar('alvo'));
ApplyForce('Player', 0, 0, -180);
end; |
Porém não deu certo, parece que esse comando PontObjectTo não funciona no player pois ele vai em outra direção... Como proceder?
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Ter Fev 24, 2015 1:15 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
Fiquei confuso.
Você quer que ao apertar uma tecla, desabilite os controles e o player persigua um ator, é isso?
|
|
Ter Fev 24, 2015 3:00 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
Ter Fev 24, 2015 3:01 pm |
|
|
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
|
|
Sim, quero um movimento involuntário do player perseguindo o alvo.
É que eu tenho um sistema de ataque e quero que quando a distancia for maior do que a permitida ele chegue mais perto do mob pra atacar.
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Ter Fev 24, 2015 4:48 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
Dei uma olhada no tutorial e a linha está assim:
| | ApplyForce('Objeto1', 3000, 0, 0); |
E o seu código
| | ApplyForce('Player', 0, 0, -180); |
Você está usando o terceiro parâmetro e também um valor negativo.
Já tentou usar o primeiro parâmetro e um valor positivo?
Exemplo
| | ApplyForce('Player', 180, 0, 0); |
É só um chute.
|
|
Ter Fev 24, 2015 5:28 pm |
|
|
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
|
|
Na verdade os parametros alí se referem aos eixos X,Y e Z, dai eu quero o movimento em Z mesmo.
Ele anda, porém o angulo dele é meio invertido, ele é tipo virado de lado pro alvo, não fica na posição certa :/
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Ter Fev 24, 2015 10:11 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
Uma coisa que estou notando no seus scripts é que depois do then não tem begin.
Estou tentando testar esse código vamos ver no que dá.
|
|
Qua Fev 25, 2015 12:00 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
Eu descobri o problema mas não descobri a solução ainda.
Quando você faz isso o ator principal gira porém a camera não.
Então empurra o ator na direção errada.
Quando se executa um applyforce() no ator principal na verdade é executado um applyforce() na camera.
|
|
Qua Fev 25, 2015 12:13 pm |
|
|
|