![]() |
|
![]() ![]() ![]() |
|
2.3 Caminhando em uma Matriz
Propósito: Explicar como posicionar a câmera em uma matriz Rem Configuração do sync Sync On Sync Rate 30 Rem Cria matriz Make matrix 1,10000,10000,20,20 Rem texturiza a matriz Load image "grass09.bmp",1 Prepare matrix texture 1,1,1,1 Fill matrix 1,0,1 Rem Randomiza a matriz randomize matrix 1,125 Rem Loop Principal Do set cursor 0,0 print X# print Y# print Z# Rem Armazena o ângulo do objeto CameraAngleY# = Camera angle Y() Rem Controla a entrada para a câmera If Upkey()=1 XTest# = Newxvalue(X#,CameraAngleY#,20) ZTest# = Newzvalue(Z#,CameraAngleY#,20) If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000 Move camera 10 Endif Endif If Leftkey()=1 then Yrotate Camera Wrapvalue(CameraAngleY#-5) If Rightkey()=1 then Yrotate Camera Wrapvalue(CameraAngleY#+5) X# = Camera position X() Z# = Camera position Z() Y# = Get ground height(1,X#,Z#) Position Camera X#,Y#+35,Z# Rem Atualiza a tela Sync Loop Este programa demonstra como posicionar a câmera seguindo o terreno de uma matriz. set cursor 0,0 print X# print Y# print Z# Nós iremos começar este tutorial introduzindo dois comandos de ajuda. Os comandos "Set Cursor" e "Print" são comandos de texto. O comando "Set Cursor" seta o cursor onde nós desejamos iniciar exibindo o texto. Os dois parâmetros após o comando são as coordenadas X e Y da tela onde nós desejamos colocar o cursor. O comando "Print" exibe o texto na tela. Nós estamos utilizando as variáveis X#, Y# e Z# aqui. Os valores de cada variável será exibido na tela. Se você deseja exibir uma string texto na tela, você deve incluir o caractere string na marca. If Upkey()=1 XTest# = Newxvalue(X#,CameraAngleY#,20) ZTest# = Newzvalue(Z#,CameraAngleY#,20) If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000 Move camera 10 Endif Endif Esta seção do código adiciona algumas restrições para o movimento de nossa câmera para não deixar o jogador sair do terreno da matriz. As variáveis XTest# e ZTest# armazenam os valores de posição onde nós desejamos colocar a câmera. Note que o valor "20" é na verdade o dobro da distância que nós desejamos mover a câmera. Isto deixa o jogador longe da margem da matriz. A comparação "If" testa se os novos valores estão sobre as margens da matriz. A matriz ocupa uma área entre 0 e 10,000 unidades em cada direção. Nós utilizamos e fazemos mais que uma comparação "If". Se nós estamos dentro do limite, então a câmera é movimentada para sua nova localização. X# = Camera position X() Z# = Camera position Z() Y# = Get ground height(1,X#,Z#) Position Camera X#,Y#+35,Z# Após a câmera ser movida, nós então armazenamos os valores X# e Z# da câmera. Depois nós obtemos a altura da matriz onde a câmera está localizada e armazenamos este valor na variável Y#. Para fazermos isto nós utilizamos o comando "Get Ground Height". O primeiro parâmetro entre parênteses após o comando é o número da matriz que nós queremos saber a altura. Os dois próximos parâmetros são as coordenadas X e Z onde nós desejamos colocar a matriz. Após resgatar o valor da altura, nós posicionamos a câmera com 35 unidades acima da altura da matriz. Isto permite você movimentar-se sobre a superfície.
|
|
Esta é a barra de navegação para explorar todos os tutoriais da série "A Caça Aos Monstros" |
| 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 2.1 | 2.2 | 2.3 | 2.4 | 2.5 | 3.1 | 3.2 | 3.3 | 3.4 | 3.5 | 3.6 | 3.7 | 3.8 | 3.9 | 3.10 | 3.11 | 3.12 | 3.13 | 3.14 |
| Copyright © 2003 Dark Basic Software Limited. | ||
| Virtual Object Informática Ltda.® |
![]() |
![]() |