Teleporte Estilo PACMAN
2 participantes
Página 1 de 1
Teleporte Estilo PACMAN
Boa tarde, estou com problemas em relação a encontrar alguma função que faça o efeito do PACMAN, de passar de um lado da tela para o o outro e vice e versa...
No meu caso, ao chegar no fim da tela, o jogador aparece no lado inverso da tela, esse feito acontecer em toda a borda da tela, e sempre que encostar na borda é jogado ao lado oposto da mesma.
Minha visão é TOPO do jogo, igual ao pacman.
Já procurei em vários lugares, mas não achei nada compatível, com o que estou precisando.
Se alguém puder ajudar agradeço, costumo usar C# para escrever os códigos, Obrigado!
No meu caso, ao chegar no fim da tela, o jogador aparece no lado inverso da tela, esse feito acontecer em toda a borda da tela, e sempre que encostar na borda é jogado ao lado oposto da mesma.
Minha visão é TOPO do jogo, igual ao pacman.
Já procurei em vários lugares, mas não achei nada compatível, com o que estou precisando.
Se alguém puder ajudar agradeço, costumo usar C# para escrever os códigos, Obrigado!
idelton- Iniciante
- PONTOS : 2994
REPUTAÇÃO : 0
Respeito as regras :
Re: Teleporte Estilo PACMAN
Tem dois métodos pra fazer isso: o método gambiarra e o método de contas.
Eu vou explicar o método gambiarra aqui, porque funciona bem e é mais fácil :pirat: (lembrando que eu não testei, então se não funcionar, retorne aqui)
Você vai criar dois Empty GameObjects, e vai posicionar o primeiro em uma borda, e o segundo em outra borda. Adicione um collider pra cada um e marque a opção isTrigger.
Feito isso, adicione a tag "Borda01" para o GameObject do lado esquerdo, e a tag "Borda02" para o outro GameObject.
Agora, vamos ao script que deve ter em seu Player:
Seguinte: esse "distanciarDaBorda" serve para que o Player não nasça em cima do outro collider, evitando que fique trocando infinitamente de lados. Então você deve editar essa variável de acordo com seu projeto.
Por padrão, coloquei 1, mas vai variar do tamanho do seu player, etc.
Espero ter ajudado, flws
Eu vou explicar o método gambiarra aqui, porque funciona bem e é mais fácil :pirat: (lembrando que eu não testei, então se não funcionar, retorne aqui)
Você vai criar dois Empty GameObjects, e vai posicionar o primeiro em uma borda, e o segundo em outra borda. Adicione um collider pra cada um e marque a opção isTrigger.
Feito isso, adicione a tag "Borda01" para o GameObject do lado esquerdo, e a tag "Borda02" para o outro GameObject.
Agora, vamos ao script que deve ter em seu Player:
- Código:
public GameObject borda01, borda02;
public float distanciarDaBorda = 1;
void OnTriggerEnter(Collider other){
if(other.tag == "Borda01")
{
Vector3 inverterPos = borda02.GetComponent<BoxCollider>().bounds.center;
inverterPos.x -= borda02.GetComponent<BoxCollider>().bounds.extents.x - distanciarDaBorda;
Vector3 antigaPos = transform.position;
transform.position = new Vector3(inverterPos.x, antigaPos.y, 0);
}
if(other.tag == "Borda02")
{
Vector3 inverterPos = borda01.GetComponent<BoxCollider>().bounds.center;
inverterPos.x += borda02.GetComponent<BoxCollider>().bounds.extents.x + distanciarDaBorda;
Vector3 antigaPos = transform.position;
transform.position = new Vector3(inverterPos.x, antigaPos.y, 0);
}
}
Seguinte: esse "distanciarDaBorda" serve para que o Player não nasça em cima do outro collider, evitando que fique trocando infinitamente de lados. Então você deve editar essa variável de acordo com seu projeto.
Por padrão, coloquei 1, mas vai variar do tamanho do seu player, etc.
Espero ter ajudado, flws
George Lucas Vieira- Avançado
- PONTOS : 3392
REPUTAÇÃO : 132
Idade : 21
Áreas de atuação : Programação, Modelagem e Animação.
Respeito as regras :
Tópicos semelhantes
» Jogo Pacman-problemas com os fantasmas
» ADAPTAR SCRIPT TELEPORTE
» SISTEMA DE TELEPORTE
» TELEPORTE "A LA MINECRAFT"(ENDERPEARL)
» Fade In/Out em Teleporte
» ADAPTAR SCRIPT TELEPORTE
» SISTEMA DE TELEPORTE
» TELEPORTE "A LA MINECRAFT"(ENDERPEARL)
» Fade In/Out em Teleporte
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos