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

Proposta: Mostrar como ativar a perspectiva em terceira pessoa

Rem Configura o sync
Sync On
Sync Rate 30

Rem Construir cubos e colocá-los de forma aleatória
For x = 1 to 5
Make object cube x,100
Position object x,Rnd(2000),0,Rnd(2000)
Next x

Rem Construir uma esfera
Make object sphere 10,50

Rem Loop Principal
Do

Rem Armazena o ângulo Y do Objeto em aY#
aY# = Object angle Y(10)

Rem Controla as entradas para a câmera
If Upkey()=1 then Move object 10,10
If Leftkey()=1 then Yrotate object 10,Wrapvalue(aY#-5)
If Rightkey()=1 then Yrotate object 10,Wrapvalue(aY#+5)

Rem Obtém a posição do jogador e armazena nas coordenadas X# e Z#
X# = Object position x(10)
Z# = Object position z(10)

Rem Obtém uma nova posição de câmera e armazena nas coordenadas cZ# e cX#
cZ# = Newzvalue(Z#,aY#-180,100)
cX# = Newxvalue(X#,aY#-180,100)

Rem Posição da Câmera
Position Camera cX#,100,cZ#

Rem Aponta a Câmera para um jogador
Point camera X#,50,Z#

Rem Atualiza a tela

Sync

Loop

Este tutorial irá introduzir a perspectiva em terceira pessoa. A perspectiva em terceira pessoa aponta para a visão que pode ser descrita como uma câmera atrás e um pouco acima do jogador. A maioria do código neste tutorial foi explicado em tutoriais anteriores. Nós iremos nos concentrar no código e nos comandos que são novos.

X# = Object position x(10)
Z# = Object position z(10)

Os comandos "Object Position X" e "Object Position Z" são parecidos com os comandos "Object Angle" exceto que estes comandos retornam a posição do objeto no espaço através de coordenadas, enquanto o último, retorna o valor de rotação. Nos parênteses deste comando você insere o número do objeto do qual você quer saber as coordenadas. Nós iremos armazenar estes valores nas variáveis X# e Z#.

cZ# = Newzvalue(Z#,aY#-180,100)
cX# = Newxvalue(X#,aY#-180,100)

Os comandos "NewZValue" e "NewXValue" economizam você ter que utilizar algumas das mais difíceis funções matemáticas como seno e coseno. Estes comandos calculam uma nova posição baseada em uma outra posição. Nós estamos utilizando eles para calcular uma posição no espaço de 100 unidades para trás do jogador. O primeiro parâmetro é a coordenada atual do jogador. Lembre-se que nós armazenamos a posição do objeto nas variáveis X# e Z#. O segundo parâmetro é o ângulo de direção onde nós queremos a nova coordenada. Nós pegamos o ângulo Y do objeto, armazenamos na variável aY# e subtraímos 180 graus deste valor. Este ângulo é apontado diretamente ao objeto. O terceiro valor é o número de unidade de espaço do objeto que nós queremos as coordenadas. O que nós fizemos é encontrar a posição de 100 unidades diretamente atrás do nosso jogador e armazenar as coordenadas nas variáveis nas variáveis representando a posição da nossa câmera, cZ# e cX#.

Position camera cX#,100,cZ#

O comando "Position Camera" funciona como o comando "Position Object" exceto que nós não precisamos especificar um número de objeto, somente os valores das coordenadas. Nós estamos utilizando os mais novos valores X e Z calculados e 100 para o nosso valor Y. Quando a coordenada Y do jogador é 0 e seu raio é 50, configurando a coordenada Y de nossa câmera para 100, você coloca a câmera sobre o jogador.

Point camera X#,50,Z#

Nossa câmera está apontada sobre nosso objeto. Nós iremos utilizar o comando "Point Camera" para apontar a câmera para o objeto. Os parâmetros para este comando são as coordenadas X,Y e Z onde você deseja apontar a câmera. Nós iremos utilizar as variáveis X# e Z# que guardam os valores X e Z da posição do jogador. Para o nosso valor Y nós iremos utilizar o valor 50. A câmera deve agora ser apontada no centro do nosso jogador.

Experimente modificar o número de vezes que o loop se repete para criar mais cubos. Lembre-se de modificar o número do jogador para um valor maior ou você irá receber uma mensagem de erro escrito "Object already exists" (Objeto já existente).

Tente modificar o valor de 180 para algum valor menor que 360 nos comandos "NewXValue" e "NewYValue", para ver como isto modifica a posição da câmera. Modifique o último número nestes comandos para mover a câmera para mais longe ou mais perto do objeto ou jogador.

Tente modificar o valor 50 no comando "Point Camera" para modificar a altura que a câmera aponta para o objeto ou jogador.

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