Dúvidas com o applyforce
Ir à página 1, 2  Próximo
 
   3D Game Builder - Índice » Suporte
Dúvidas com o applyforce
Autor Mensagem
Mililo
Usuário
Usuário


Registrado: 05/12/08
Mensagens: 366
Localização: Santo Antônio de Pádua / RJ

Dúvidas com o applyforce
Tá bem confuso para mim usar o applyforce aqui, eu tava tentando mover um carro com um comando aqui que eu peguei do rogeriodilima e modifiquei mas eu to usando um modelo de carro completo e não só a roda, para poder testar, mas tô confuso aqui com o applyforce, eu preciso aplicar força no eixo Z só que eu não consigo, o carro fica parado, aqui vai o código:
Código:
//acelerar
if IsKeyPress(38) then
begin
  ApplyForce('carro',0,0,2000);
end;
//ré
begin
if IsKeyPress(40) then
  ApplyForce('carro',0,0,-2000);
end;
//virar direita
if IsKeyPress(39) then
begin
  SetObjectRollAngle('carro', GetObjectRollAngle('carro')-10);
end;
//virar esquerda
if IsKeyPress(37) then
begin
  SetObjectRollAngle
  ('carro', GetObjectRollAngle('carro')+10);
end;

Pra virar tá normal, mas ele não se move.

Então para testar eu mudei um pouco o código coloquei o applyforce no eixo X, o código ficou assim:
Código:
//acelerar
if IsKeyPress(38) then
begin
  ApplyForce('carro',2000,0,0);
end;
//ré
begin
if IsKeyPress(40) then
  ApplyForce('carro',-2000,0,0);
end;
//virar direita
if IsKeyPress(39) then
begin
  SetObjectRollAngle('carro', GetObjectRollAngle('carro')-10);
end;
//virar esquerda
if IsKeyPress(37) then
begin
  SetObjectRollAngle
  ('carro', GetObjectRollAngle('carro')+10);
end;

E funcionou! o carro se moveu para os lados, só que tem um problema, a partir do momento que eu aperto uma das teclas esquerda ou direita o applyforce não funciona mais quando volto a apertar cima ou baixo, tento voltar o carro para sua posição inicial com as teclas esquerda e direita mas mesmo assim o applyforce não funciona mais.

Aqui vai uma imagem com a posição do carro, ele parece livre de qualquer bloqueio e não parece estar sendo forçado contra o chão.

Obs: Só para deixar claro os comandos 37,38,39 e 40 são as teclas direcionais.
Obs²: Eu mudei os comandos de movimentação do meu personagem para W,S,A,D para não interferir com a movimentação do carro.

Talvez o erro seja no posicionamento do carro ou na sintaxe do código não sei se é extamento no apllyforce mas preciso de ajuda com isso.


Dom Jan 11, 2009 12:45 pm Exibir perfil de usuários
rogeriodilima
Novato
Novato


Registrado: 06/12/08
Mensagens: 56

aqui no meu pc, eu não consigo usar o applyforce de jeito nenhum, sempre da mensagem de erro.
Dom Jan 11, 2009 5:17 pm Exibir perfil de usuários
rogeriodilima
Novato
Novato


Registrado: 06/12/08
Mensagens: 56

da uma mensagem de erro assim

Código:
access violation at address 00579CA2 in module 'testemovimento.exe'.
Read of address 00000049.

Dom Jan 11, 2009 5:21 pm Exibir perfil de usuários
Mililo
Usuário
Usuário


Registrado: 05/12/08
Mensagens: 366
Localização: Santo Antônio de Pádua / RJ

Comigo o único erro que deu foi quando usei força mtu pequena, dava um erro em um arquivo .pas lah, acho que eh pque só dá para usar força maior que 1000 parece mas se for isso tb pod complicar na hora de fazer a aceleração de um carro Sad .

Mas quanto ao seu erro eu não sei porque não, de qualquer jeito tenta usar forças maiores e testar em todos os eixos(X,Y,Z) para ver se algum funciona.


Seg Jan 12, 2009 11:33 am Exibir perfil de usuários
Edirlei
Administrador
Administrador


Registrado: 15/03/08
Mensagens: 760

Olá,
Verifique que você tem um begin e end ali no código que não fazem sentido. O correto seria:

Código:
//acelerar
if IsKeyPress(38) then
begin
  ApplyForce('carro',0,0,2000);
end;

//ré
if IsKeyPress(40) then
begin
  ApplyForce('carro',0,0,-2000);
end;

//virar direita
if IsKeyPress(39) then
begin
  SetObjectRollAngle('carro', GetObjectRollAngle('carro')-10);
end;

//virar esquerda
if IsKeyPress(37) then
begin
  SetObjectRollAngle ('carro', GetObjectRollAngle('carro')+10);
end;


Me avise se continuar com o mesmo problema que dai eu tento testar ele aqui para ver exatamente o que é.


Seg Jan 12, 2009 4:05 pm Exibir perfil de usuários
rogeriodilima
Novato
Novato


Registrado: 06/12/08
Mensagens: 56

ja desinstalei o 3DGB , apaguei todas as pastas. baxei de novo o instalador, instalei e não funciona o ApllyForce, da erro.

Tem um outro codigo que da para ser utilizado para fazer um objeto se mover?
pque girar a roda para frente, para tras e para os lados eu consigo, mais ela não sai do lugar
Seg Jan 12, 2009 9:32 pm Exibir perfil de usuários
Edirlei
Administrador
Administrador


Registrado: 15/03/08
Mensagens: 760

rogeriodilima escreveu:
ja desinstalei o 3DGB , apaguei todas as pastas. baxei de novo o instalador, instalei e não funciona o ApllyForce, da erro.


Deve ser outra coisa que esta causando o problema e não o ApllyForce, verifique se o objeto que você esta aplicando a força esta com a propriedade "Collision->Type" como "Dynamic" pois para você mover um objeto com o ApllyForce ele precisar ser dinâmico.

Para testar se é algum problema do seu computador (duvido muito que seja isso) crie um ator MD2 e insira um dos algoritmos de inteligência artificial do Script Builder, todos eles usam o ApllyForce.
Seg Jan 12, 2009 10:04 pm Exibir perfil de usuários
rogeriodilima
Novato
Novato


Registrado: 06/12/08
Mensagens: 56

era bem isso mesmo o coslision type estava como 'static' ai eu mudei e já não deu mais o erro

valeww
Seg Jan 12, 2009 11:38 pm Exibir perfil de usuários
   3D Game Builder - Índice » Suporte Ir à página 1, 2  Próximo
Página 1 de 2