ProdutosNewsComprarDownloadsDownloadsDownloadsTutoriaisSuporteNão disponívelGaleriaForumContato  

DarkBASIC Pro
Versão de Avaliação
Patch 5.4
USB Dongle
Forum
Indique
Lista de Email
  Diário Antigo
Outros Produtos
Cartography Shop
DarkMatter
Curso 3D Studio
Combinados
Local DBPro Sites
Italy
UK

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.

 

Promoção de Lançamento

Clique aqui para comprar o 
DBPro R$220,00

Clique aqui para comprar o 
DBPro para Universitários R$150,00


clique aqui para comprar o Upgrade a partir da versão clássica por R$150,00

Nova pagina 1

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