|
|
|
Autor |
Mensagem |
Mililo
Usuário
Registrado: 05/12/08 Mensagens: 366 Localização: Santo Antônio de Pádua / RJ |
|
|
|
| | ''Thiago W.''
Você tem complexo de poligonos né?..rsrsrsrs
eu to fazendo outro carro, que vai ficar com cerca de 1000 poligonos só que com meshsmooth, ai a malha vai ficar lisinha, e assim mesmo vai ficar um carro leve..
e o esquema das rodas, só se não ter outro jeito, mas não pode ser animação, eu tinha feito um codigo tipo assim
if iskeyPress( 38 ) then
begin
ApplyForce('roda',0,20,0);//valores ficticios
end;
coloquei no evento onInteract, mais não faz nada |
Cara primeiro queria fala que gostei muito dos carros, para mim não precisa mudar, mas você que sabe.
Se eu soubesse modelar uma roda desses carros já tava muito feliz
Mas quanto ao código eu acho que você errou, com onInteract na roda acho você teria que apertar enter para depois apertar o botão, o certo seria um MainLoop no mapa assim ficaria sempre checando se a tecla foi pressionada.
Daí para girar a roda você usaria SetObjectRollAngle('objeto', angulo) e depois o ApplyForce para mover ela, eu acho que assim funcionaria mas não tenho certeza.
_________________ "Em verdade, em verdade te digo que se alguém não nascer de novo, não pode ver o reino de Deus."
"Porque pela graça sois salvos, mediante a fé; e isto não vem de vós, é dom de Deus; não de obras, para que ninguém se glorie."
----
www.aquiestamos-juventude.blogspot.com
http://todosnecessitam.blogspot.com/ |
|
Seg Dez 29, 2008 11:20 am |
|
|
rogeriodilima
Novato
Registrado: 06/12/08 Mensagens: 56
|
|
|
|
ow valeu
você poderia postar o codigo então para eu conseguir fazer esse movimento, é que sem uma referencia fica dificil,
abraço
|
|
Seg Dez 29, 2008 2:14 pm |
|
|
rogeriodilima
Novato
Registrado: 06/12/08 Mensagens: 56
|
|
|
|
Esse ai é um carro que eu criei, só que esse não é para jogo, não tem nenhuma textura é tudo modelagem mesmo, cheio de chanfers e meshsmooth, as partes que tem mais poligonos é os pneus e as rodas, o carro tem 230.000 polys
|
|
Seg Dez 29, 2008 7:03 pm |
|
|
rogeriodilima
Novato
Registrado: 06/12/08 Mensagens: 56
|
|
|
|
eu fiz este codigo coloquei no evento mainLoop do mapa
| | if IsKeyPress(38)then
begin
SetObjectTurnAngle('objeto',180);
//ApplyForce('objeto',0,30,0);
end; |
ai o cilindro que eu coloquei no mapa girou do jeito que a roda tem que girar, mais só fez uma vez , como que faz para ficar girando enquanto eu estiver com a tecla pressionada?
e como que eu uso o applyforce , o applyforce é que define a velocidade da roda? e aonde eu coloco, pque se eu deixar o appyforce da erro de memoria
e basicamente os codigos seriam esse, alguem sabe bolar o esquema para usar tudo isso em conjunto
| | //acelerar
if IsKeyPress(38) then
begin
SetObjectTurnAngle('objeto1',180);
//ApplyForce('objeto1',0,0,0);
end;
//virar direita
if IsKeyPress(39) then
begin
SetObjectPitchAngle('objeto1',30);
//ApplyForce('objeto1',0,0,0);
end;
//virar esquerda
if IsKeyPress(37) then
begin
SetObjectPitchAngle('objeto1',30);
//ApplyForce('objeto1',0,0,0);
end; |
|
|
Seg Dez 29, 2008 7:20 pm |
|
|
Edirlei
Administrador
Registrado: 15/03/08 Mensagens: 760
|
|
|
|
Volto a te perguntar o que eu perguntei no outro tópico, a sua roda é um objeto separado do carro?
Se for você terá que adicioná-la hierarquicamente no carro se não você só vai mover a roda e não o resto do carro.
Para fazer a roda girar faça algo assim:
| |
if IsKeyPress(38)then
begin
SetObjectTurnAngle('objeto', GetObjectTurnAngle('objeto')+0.1);
//ApplyForce('objeto',0,30,0);
end;
|
Aquele +0.1 é a quantidade de incremento da rotação da roda, ou seja, quanto maior mais rápida ela vai girar.
Parabéns pelos modelos estão ótimos.
|
|
Seg Dez 29, 2008 8:03 pm |
|
|
rogeriodilima
Novato
Registrado: 06/12/08 Mensagens: 56
|
|
|
|
Edirlei
as rodas vão ser separadas da carroceria do carro, ai tem que fazer um esquema para quando eu fazer a roda andar para frente ou para traz , a carroceria acompanhar a roda.
é que vendo outros topicos sobre criação de jogos de corrida em varias engines eu aprendi que tudo que você quer aplicar uma ação tem que ser separado das demais partes do modelo.
por exemplo se eu quizesse fazer os vidros do carro se quebrar quando houver uma colisão, os vidros teriam que ser separados da carroceria.
|
|
Seg Dez 29, 2008 9:21 pm |
|
|
rogeriodilima
Novato
Registrado: 06/12/08 Mensagens: 56
|
|
|
|
o codigo funcionou, agora a roda fica girando enquanto a tecla estiver pressionada,
só que tem um problema se eu pressiono para virar para direita a roda rotaciona para direita, só que quando eu pressiono para rotacionar para esquerda, ela continua virar para direita e vice versa...ela só rotaciona para lado que eu pressionar primeiro
o outro problema é que se eu acelar e virar ao mesmo tempo ai a roda já começa a rotacionar para outro angulo.
ai queria saber mais uma coisa, como que faz para que quanto maior o tempo a tecla estiver pressionada, mais rapida a roda girar, tipo assim criar uma variavel, e essa variavel vai se auto incrementando conforme o tempo vai passando dai eu usaria essa variavel assim
| |
var forca : float;
if IsKeyPress(38) then
begin
forca:=10;
SetObjectTurnAngle('objeto1', GetObjectTurnAngle('objeto1')+forca);
//ApplyForce('objeto1',0,0,0);
end;
|
só que a variavek ia ter um limite para o valor, assim que chegasse a determinado valor, iria trocar de marcha
ou sei lá usar o applyforce que eu ainda não entendi
mais ou menos essa idéia, alguem pode ajudar[/code]
|
|
Seg Dez 29, 2008 9:52 pm |
|
|
rogeriodilima
Novato
Registrado: 06/12/08 Mensagens: 56
|
|
|
|
| | //acelerar
var forca : float;
if IsKeyPress(38) then
begin
forca:=10;
SetObjectTurnAngle('objeto1', GetObjectTurnAngle('objeto1')+forca);
//ApplyForce('objeto1',0,0,0);
end;
//ré
if IsKeyPress(40) then
begin
SetObjectTurnAngle('objeto1', GetObjectTurnAngle('objeto1')-10);
//ApplyForce('objeto1',0,0,0);
end;
//virar direita
if IsKeyPress(39) then
begin
SetObjectPitchAngle('objeto1', GetObjectPitchAngle('objeto1')+1);
//ApplyForce('objeto1',0,0,0);
end;
//virar esquerda
if IsKeyPress(37) then
begin
SetObjectPitchAngle('objeto1', GetObjectPitchAngle('objeto1')-1);
//ApplyForce('objeto1',0,0,0);
end; |
assim ta virando para os dois lados, mais ainda ta bagunçado quando eu acelero e viro ao mesmo tempo
|
|
Seg Dez 29, 2008 10:10 pm |
|
|
|
|
|
|
|
|