|
|
|
Autor |
Mensagem |
Mililo
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:
| | //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:
| | //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 |
|
|
rogeriodilima
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 |
|
|
rogeriodilima
Novato
Registrado: 06/12/08 Mensagens: 56
|
|
|
|
da uma mensagem de erro assim
| | access violation at address 00579CA2 in module 'testemovimento.exe'.
Read of address 00000049.
|
|
|
Dom Jan 11, 2009 5:21 pm |
|
|
Mililo
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 .
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 |
|
|
Edirlei
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:
| | //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 |
|
|
rogeriodilima
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 |
|
|
Edirlei
Administrador
Registrado: 15/03/08 Mensagens: 760
|
|
|
|
| | 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 |
|
|
rogeriodilima
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 |
|
|
|
|
|
|
|
|