Qual é a lógica do terreno do Minecraft?
Página 1 de 1
Qual é a lógica do terreno do Minecraft?
Eu quero começar a fazer um jogo tipo Minecraft, mas eu não estou conseguindo pensar em como o player vai colocar os blocos, porque eles precisam ficar alinhados então não poderia simplesmente gerar um bloco, então eu pensei em fazer todo o mapa estar cheio de blocos invisivei, e quando ele coloca o bloco ele só ativa o bloco que estaria naquela posição, mas eu não tenho certeza se é isso, e se fosse eu não saberia fazer muito bem também.
Sasuke rei- Membro
- PONTOS : 90
REPUTAÇÃO : 10
Respeito as regras :
Re: Qual é a lógica do terreno do Minecraft?
ficar alinhados não é tao difícil, vamos supor que os blocos tem o tamanho 1.
sendo assim eles terao um intervalo de 1 em suas posiçoes entao uma torre de 3 blocos seriam:
x, y, z
0, 0, 0
0, 1, 0
0, 2, 0
(o único problema ai nesse exemplo seria tu usar decimais, não usando tudo vai ficar alinhado direitinho)
(e caso o tamanho dos lados dos blocos não sejam 1, tu pode checar se uma posição é valido apenas metendo um: IntASerChecado % tamanhoDosLados == 0)
bem acho que tem relação com um raycast que pega a posição de colisão e compara com a posição do objeto colidido ai a partir disso descobre o lado onde tu quer.
ai ao descobrir em qual lado do cubo o raycast colidiu tu simplesmente, vai saber onde instanciar o cubo.
já que bastaria dar um +1 ou -1 no x, y ou z a depender do lado.
sendo assim eles terao um intervalo de 1 em suas posiçoes entao uma torre de 3 blocos seriam:
x, y, z
0, 0, 0
0, 1, 0
0, 2, 0
(o único problema ai nesse exemplo seria tu usar decimais, não usando tudo vai ficar alinhado direitinho)
(e caso o tamanho dos lados dos blocos não sejam 1, tu pode checar se uma posição é valido apenas metendo um: IntASerChecado % tamanhoDosLados == 0)
bem acho que tem relação com um raycast que pega a posição de colisão e compara com a posição do objeto colidido ai a partir disso descobre o lado onde tu quer.
ai ao descobrir em qual lado do cubo o raycast colidiu tu simplesmente, vai saber onde instanciar o cubo.
já que bastaria dar um +1 ou -1 no x, y ou z a depender do lado.
dutrabr100- Programador
-
PONTOS : 232
REPUTAÇÃO : 24
Idade : 22
Áreas de atuação : -Formado Em Analise e Desenvolvimento De Sistemas
-Iniciante Em Unity
-Iniciante Em Blender
Minhas
Respeito as regras :
Re: Qual é a lógica do terreno do Minecraft?
alias no minecraft tem esses blocos vazios, já que ar também é um bloco.@Sasuke rei escreveu:Eu quero começar a fazer um jogo tipo Minecraft, mas eu não estou conseguindo pensar em como o player vai colocar os blocos, porque eles precisam ficar alinhados então não poderia simplesmente gerar um bloco, então eu pensei em fazer todo o mapa estar cheio de blocos invisivei, e quando ele coloca o bloco ele só ativa o bloco que estaria naquela posição, mas eu não tenho certeza se é isso, e se fosse eu não saberia fazer muito bem também.
Ar - Minecraft Wiki
mas eles não são como os que voce pensa em botar, não servem ao mesmo proposito
dutrabr100- Programador
-
PONTOS : 232
REPUTAÇÃO : 24
Idade : 22
Áreas de atuação : -Formado Em Analise e Desenvolvimento De Sistemas
-Iniciante Em Unity
-Iniciante Em Blender
Minhas
Respeito as regras :
Re: Qual é a lógica do terreno do Minecraft?
Obrigado, mas você sabe como colocar os blocos todo o mapa pelo script?
Sasuke rei- Membro
- PONTOS : 90
REPUTAÇÃO : 10
Respeito as regras :
Re: Qual é a lógica do terreno do Minecraft?
Ai tu ta falando de:@Sasuke rei escreveu:Obrigado, mas você sabe como colocar os blocos todo o mapa pelo script?
Como gerar o mundo Proceduralmente Apartir de uma Seed.
Não, não é um link direto pra pagina inicial do google....
mas enfim lembro que muito tempo atras vi um tutorial bom sobre isso no canal GamesIndie.
dutrabr100- Programador
-
PONTOS : 232
REPUTAÇÃO : 24
Idade : 22
Áreas de atuação : -Formado Em Analise e Desenvolvimento De Sistemas
-Iniciante Em Unity
-Iniciante Em Blender
Minhas
Respeito as regras :
Re: Qual é a lógica do terreno do Minecraft?
Obrigado, só agora eu entendi o que você quis dizer na primeira resposta, tem como você explicar mais sobre isso? É que eu sou iniciante e não entendi muito bem
Sasuke rei- Membro
- PONTOS : 90
REPUTAÇÃO : 10
Respeito as regras :
Re: Qual é a lógica do terreno do Minecraft?
@Sasuke rei escreveu:Obrigado, só agora eu entendi o que você quis dizer na primeira resposta, tem como você explicar mais sobre isso? É que eu sou iniciante e não entendi muito bem
Ok, primeiramente, voce deve saber o que é o raycast:
- Código:
Raycast é como um laser.
ao cria-lo tu defini o ponto de inicio dele, a direção que ele aponta,
e a distancia máxima que ele alcança.
e quando ele colide em algo ele pode te passar varias informações, como:
-a posicao onde colidiu
-em quem ele colidiu
-e sabendo em quem ele colidiu, tu pode pegar qualquer informação desse gameobject,
como a posição por exemplo
agora ao clicar um raycast seria chamado (com posição inicial partindo da posição da câmera e direção Vector3.forward) e com ele tu saberia a posição de colisão e a posição do objeto em que colidiu.
agora vamos supor que o objeto colidido seja um bloco, supondo que o intervalo entre os blocos seja de 1.
agora o intervalo é 1 entao caso a:
- Código:
Vector3 variação = (posição de colisão - posição do bloco colidido);
agora vamos pensar um cubo tem todos lados iguais, e se eu colidir em um lado dele, sendo que a origem do cubo esse no centro, vai ter um numero especifico no eixo correspondente na variação. pelo intervalo entre os cubos serem 1, então entre a origem do cubo e sua face, deve ter 0.5f de distancia.
então caso a variação apresentar 0.5f ou -0.5f ela ira me revelar o eixo do cubo que houve colisão e o negativo e positivo revelaria em qual dos dois lados do eixo que isso ocorreu
dutrabr100- Programador
-
PONTOS : 232
REPUTAÇÃO : 24
Idade : 22
Áreas de atuação : -Formado Em Analise e Desenvolvimento De Sistemas
-Iniciante Em Unity
-Iniciante Em Blender
Minhas
Respeito as regras :
Sasuke rei- Membro
- PONTOS : 90
REPUTAÇÃO : 10
Respeito as regras :
Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum