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 mover um objeto através de uma matriz com perspectiva em terceira pessoa

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 Cria jogador 
Load image "barry.bmp",2
Make object sphere 10,25
Texture object 10,2
position object 10,100,0,100

Rem Randomiza a matriz
randomize matrix 1,125

Rem Loop Principal
Do
set cursor 0,0
print screen fps()

Rem Armazena o ângulo do objeto
AngleY# = object angle Y(10)

Rem Controla a entrada para a câmera
If Upkey()=1
XTest# = Newxvalue(X#,AngleY#,20)
ZTest# = Newzvalue(Z#,AngleY#,20)
If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000
Move object 10,10
Endif
Endif

If Leftkey()=1 then Yrotate object 10,Wrapvalue(AngleY#-5)
If Rightkey()=1 then Yrotate object 10,Wrapvalue(AngleY#+5)
X# = Object position x(10)
Z# = Object position z(10)
Y# = Get Ground Height(1,X#,Z#)
Position object 10,X#,Y#+12.5,Z#
CameraZ# = Newzvalue(Z#,AngleY#-180,100)
CameraX# = Newxvalue(X#,AngleY#-180,100)
CameraY# = Get Ground Height(1,CameraX#,CameraZ#)
Position camera CameraX#,CameraY#+50,CameraZ#
Point camera X#,Y#+25,Z#

Rem Atualiza a tela
Sync
Loop	

Este programa permite o usuário mover um objeto esférico texturizado através da matriz, utilizando o teclado como entrada. Nós iremos iniciar este tutorial com um simples comando de ajuda.

print screen fps()

O comando "Screen Fps()" é um comando útil para saber se a tela está sendo atualizada rapidamente. Tente modificar o valor sync para 0 e rode o programa. Você verá um número impresso na tela mostrando quantas vezes por segundo sua tela é atualizada. Se sua placa de vídeo não permitir este efeito, você não conseguirá ver este feito em seu pleno funcionamento. Algumas placas de vídeo permitem você desabilitar seu "VSync", o que permite sua placa de vídeo atualizar a tela o mais rápido possível.

X# = Object position x(10)
Z# = Object position z(10)
Y# = Get Ground Height(1,X#,Z#)
Position object 10,X#,Y#+12.5,Z#
CameraZ# = Newzvalue(Z#,AngleY#-180,100)
CameraX# = Newxvalue(X#,AngleY#-180,100)
CameraY# = Get Ground Height(1,CameraX#,CameraZ#)
Position camera CameraX#,CameraY#+50,CameraZ#
Point camera X#,Y#+25,Z#

Como nós fizemos no último tutorial, nós utilizamos o "Get Ground Height" para encontrar a altura da matriz na localização específica. Aqui nós estamos utilizando este comando duas vezes, uma vez para obter a altura onde o objeto esfera está e a segunda vez para obter a altura onde a câmera está localizada. Você irá notar que o restante do código é o mesmo que o tutorial anterior. A única mudança que nós fizemos é adicionarmos o valor Y#.

Tente modificar utilizando a instrução "Rem" para comentários da linha de código

CameraY# = Get Ground Height(1,CameraX#,CameraZ#)

Na linha de comando:

Position camera CameraX#,CameraY#+50,CameraZ#

substitua a variável CameraY# pela variável "Y#" para ver as mudanças de ação da câmera.

 

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