Cubo não esta solido

 
   3D Game Builder - Índice » Programação
Cubo não esta solido
Autor Mensagem
Edno Rodrigues
Usuário
Usuário


Registrado: 07/09/09
Mensagens: 277
Localização: Brasil Games

Cubo não esta solido
precisa de ajuda, os scipts para que ator fique em cima do cubo não ta dando certo eu coloquei o script da movimentação estatitica ficou assim..

if Round(GetObjectPositionX('Cubo13')) < 200 then
SetObjectPosition('Cubo13', GetObjectPositionX('Cubo13')+0.02, GetObjectPositionY('Cubo13'), GetObjectPositionZ('Cubo13'));

beleza deu certo, so que o ator não fica em cima, coloquei este script no oncolision do cubo e não deu certo sera que o script é esse mesmo ou ta faltando algun detalhe o script é esse

if GetObjectPositionX('Cubo13') < 2 then
begin
SetObjectPosition('Cubo13',GetObjectPositionX('Cubo13')+0.02,
GetObjectPositionY('Cubo13'),
GetObjectPositionZ('Cubo13'));
SetObjectPosition('Player',GetObjectPositionX('Player')+0.02,
GetObjectPositionY('Player'),
GetObjectPositionZ('Player'));
end;


Ter Mai 23, 2017 12:40 am Exibir perfil de usuários
Lima
Usuário
Usuário


Registrado: 16/11/13
Mensagens: 100

Re: Cubo não esta solido
Edno Rodrigues escreveu:
precisa de ajuda, os scipts para que ator fique em cima do cubo não ta dando certo eu coloquei o script da movimentação estatitica ficou assim..

if Round(GetObjectPositionX('Cubo13')) < 200 then
SetObjectPosition('Cubo13', GetObjectPositionX('Cubo13')+0.02, GetObjectPositionY('Cubo13'), GetObjectPositionZ('Cubo13'));

beleza deu certo, so que o ator não fica em cima, coloquei este script no oncolision do cubo e não deu certo sera que o script é esse mesmo ou ta faltando algun detalhe o script é esse

if GetObjectPositionX('Cubo13') < 2 then
begin
SetObjectPosition('Cubo13',GetObjectPositionX('Cubo13')+0.02,
GetObjectPositionY('Cubo13'),
GetObjectPositionZ('Cubo13'));
SetObjectPosition('Player',GetObjectPositionX('Player')+0.02,
GetObjectPositionY('Player'),
GetObjectPositionZ('Player'));
end;


Sabe, essa linha está impedindo seu código de funcionar corretamente: if Round(GetObjectPositionX('Cubo13')) < 200 then
SetObjectPosition('Cubo13', GetObjectPositionX('Cubo13')+0.02, GetObjectPositionY('Cubo13'), GetObjectPositionZ('Cubo13'));
livre-se dela, e tudo ficará bem.

ps.: Seu código não tem erros!
eu olhei e não vi a necessidade de arrendondar a posição, e além disso, ela é executada antes do script para o ator ir junto com o cubo, por isso o cubo vai sozinho e o ator fica.

_________________
"Hello World"
Ter Mai 23, 2017 7:04 pm Exibir perfil de usuários
Edno Rodrigues
Usuário
Usuário


Registrado: 07/09/09
Mensagens: 277
Localização: Brasil Games

Re: Cubo não esta solido
deu certo, agora pois o script também diz a movimentação do cubo, agora endendir, a posição do ator junto com o cubo tem que ser na mesma direção e mesma velocidade, eu tirei o primeiro script deixei so ele ai deu certo.. obrigado amigo....


Ter Mai 23, 2017 11:54 pm Exibir perfil de usuários
Edno Rodrigues
Usuário
Usuário


Registrado: 07/09/09
Mensagens: 277
Localização: Brasil Games

agora o obstaculo não esta solido
agora os obstaculos não estão solidos, o ator passa por eles, eu fiz uma fase onde tem uma rampa em movimentação para posição X 739, o ator fica de boa em cima da rampa, coloquei cubos como obstaculos, onde você tem que desviar , pra esquerda ou pra direita, coloquei o script no oncolision no cubo más não deu certo foi esse

if GetObjectPositionX('Cubo21') < 0 then
begin
SetObjectPosition('Cubo21',
GetObjectPositionX('Cubo21'),
GetObjectPositionY('Cubo21'),
GetObjectPositionZ('Cubo21'));
SetObjectPosition('Player',
GetObjectPositionX('Player'),
GetObjectPositionY('Player'),
GetObjectPositionZ('Player'));
end;

quando executo o jogo o ator passa por ele, eu queira que derruba-se o ator da rampa, eu não sei se estou certo, más nesta questão eu acho que tem haver com a força em colisão, eu acho que o scipt não é esse,por que não deu certo pro cubo...
Qua Mai 24, 2017 12:51 am Exibir perfil de usuários
Lima
Usuário
Usuário


Registrado: 16/11/13
Mensagens: 100

Bom, eu não sei como fazer para um objeto "empurrar" o ator principal, não sei o motivo mas, mesmo objetos dinâmicos não conseguem empurrar ele (acabei de testar)
o SetObjectPosition() posiciona um objeto em qualuer lugar sem consider colisão, e já que o player não se move mesmo colidindo com objetos dinâmicos, a saída é posicionar ele em outro lugar como se estivesse escorregando/caindo mesmo.... chato, mas é uma solução! A única coisa que vai precisar acrescentar no seu script é uma condição para ele parar de "escorregar" para fora da sua rampa e no SetObjectPosition('Player',x,y,z) dizer para ele escorregar lentamente no eixo que você quer!

exemplo:
Se você quer que ele escorregue pro lado:
Código:

 if (GetObjectPositionX('Player')< (valor que seja fora da rampa) then
             SetObjectPosition('Player', GetObjectPositionX('Player'),
                                                    GetObjectPositionY('Player')+0.5(valor qualquer),
                                                    GetObjectPositionZ('Player'));


_________________
"Hello World"
Qui Mai 25, 2017 6:39 pm Exibir perfil de usuários
   3D Game Builder - Índice » Programação
Página 1 de 1