Fórum Sharpgames
 
 
  Forum  Criação de Jogo...  Algoritmos  Colisão Com Terreno
Anterior Anterior
 
Próximo Próximo
Nova Entrada 16/10/2008 23:51
  Quorthon3D
6 tópicos
Sem Ranking


Colisão Com Terreno 
Boa noite, estou fazendo um jogo onde você controla um helicoptero, vi os tutoriais no xna creators de colisão mas os mesmo não ajudaram muito.
gostaria de fazer um teste tipo, pego o X Z do modelo, olho na mionha textura de mapa de alturas naquela posicao e testo o Y do modelo com o terreno.

tentei criar esse método

public float ColisaoTerreno(Texture2DContent input, Vector3 posicaoHeli)
        {
           
            input.ConvertBitmapType(typeof(PixelBitmapContent<float>));

            PixelBitmapContent<float> heightfield;
            heightfield = (PixelBitmapContent<float>)input.Mipmaps[0];

           
            for (int y = 0; y < heightfield.Height; y++)
            {
                for (int x = 0; x < heightfield.Width; x++)
                {
                    Vector3 position;

                    position.X = (x - heightfield.Width / 2) * 3 //escala do meu terreno;
                    position.Z = (y - heightfield.Height / 2) * 3
//escala do meu terreno;
                    position.Y = (heightfield.GetPixel(x, y) - 1) * 320;

                    if (position.X == (posicao
Heli.X / 2) * 3 && position.Z == (posicaoHeli.Z / 2) * 3)
                        if (position
Heli.Y > posicao.Y)
                            return position.Y + 10;

                   
                }
            }
            return posicao
Heli.Y;
        }

Para verificar se o Helicoptero está embaixo do terreno, só que nao sei como carregar o meu .bmp do terreno de alturas no Texture2DContent.

alguém pode me dar uma luz, ou algum outro método de fazer esse test de colisão?
 
Nova Entrada 17/10/2008 1:22
  lucianoJose
125 tópicos
Iniciante


Re: Colisão Com Terreno 
 Quorthon3D escreveu

Boa noite, estou fazendo um jogo onde você controla um helicoptero, vi os tutoriais no xna creators de colisão mas os mesmo não ajudaram muito.
gostaria de fazer um teste tipo, pego o X Z do modelo, olho na minha textura de mapa de alturas naquela posicao e testo o Y do modelo com o terreno.

tentei criar esse método

public float ColisaoTerreno(Texture2DContent input, Vector3 posicaoHeli)
        {
           
            input.ConvertBitmapType(typeof(PixelBitmapContent));

            PixelBitmapContent heightfield;
            heightfield = (PixelBitmapContent)input.Mipmaps[0];

           
            for (int y = 0; y < heightfield.Height; y++)
            {
                for (int x = 0; x < heightfield.Width; x++)
                {
                    Vector3 position;

                    position.X = (x - heightfield.Width / 2) * 3 //escala do meu terreno;
                    position.Z = (y - heightfield.Height / 2) * 3
//escala do meu terreno;
                    position.Y = (heightfield.GetPixel(x, y) - 1) * 320;

                    if (position.X == (posicao
Heli.X / 2) * 3 && position.Z == (posicaoHeli.Z / 2) * 3)
                        if (position
Heli.Y > posicao.Y)
                            return position.Y + 10;

                   
                }
            }
            return posicao
Heli.Y;
        }

Para verificar se o Helicoptero está embaixo do terreno, só que nao sei como carregar o meu .bmp do terreno de alturas no Texture2DContent.

alguém pode me dar uma luz, ou algum outro método de fazer esse test de colisão?


Se eu não entendi errado o que vc quer fazer entre seu Helicopitero e o seu terreno pode ser feito tranquilamente com o que é mostrado neste exemplo do Creators: HeightMap. Se tu já tinha visto este exemplo diz ai pra gente pq ele não ajudou muito! Lá no projeto desse Exemplo, tem um método chamado GetHeight, aonde tu pode passar a posição X, Y, Z do teu Helicopitero...

MCP, MCTS. Administrador do SharpGames. Game Developer(C++) at Manifesto Game Studio Meu Blog: lucianojosefj.spaces.live.com
 
Nova Entrada 17/10/2008 13:03
  Quorthon3D
6 tópicos
Sem Ranking


Re: Colisão Com Terreno 
Então implementei esse exmplo no meu código, só que não consegui funcionar, pois  o helicoptero andava como um carro, grudado no terreno, e como meu terreno é escalado, pois o mundo é grande, ele dava estouro de índice na hora de verificar a posição.
 
Nova Entrada 27/10/2008 13:11
  Quorthon3D
6 tópicos
Sem Ranking


Re: Colisão Com Terreno 
Consegui aplicar colisão com o terreno com esse exemplo sim, arrumei a parada do estouro de índice. vlw
 
Anterior Anterior
 
Próximo Próximo
  Forum  Criação de Jogo...  Algoritmos  Colisão Com Terreno
AdSense

Amazon

Logos do XBox 360, XNA e Games For Windows
Copyright 2008 por SharpgamesPolítica de Privacidade  |  Termos de Uso