![]() |
|
![]() ![]() ![]() |
|
2.4 Perspectiva em Terceira Pessoa em uma Matriz
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.
|
|
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.® |
![]() |
![]() |