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: Mostrar como modificar a posição e a rotação do objeto utilizando os dados de entrada providas do teclado.

Nós iremos iniciar este tutorial introduzindo a idéia do comando "Rem". O comando "Rem" é uma ferramenta ótima para documentar seu código-fonte para futuras modificações. Para se entender melhor este comando do DarkBASIC associe a idéia de um "comentário" do que você está fazendo em seu programa. A partir do momento que você coloca o comando "Rem" em seu código, todo o restante da linha onde está o comando "Rem" será ignorado pelo DarkBASIC. A medida que seu código fonte cresce e você fica mais tempo trabalhando nele, você acaba esquecendo quais variáveis foram utilizadas no código e o que elas fazem em seu programa. Para evitar estas inconveniências você pode adicionar comentários com o comando "Rem" para explicar para que servem determinadas variáveis e pedaços de código. Esta ferramenta é realmente útil quando você está trabalhando com outros códigos ou em diferentes projetos.

  Rem Configura a escala sync 
   Sync On
   Sync Rate 30
   Rem Criar esfera
   Make object cube 1,100

   Rem Loop principal
   Do
   	Rem Armazena o ângulo Y do objeto em aY#
   	aY# = Object angle Y(1)
   	Rem Controlar entrada
   	If Upkey()=1 then Move object 1,2
   	If Leftkey()=1 then aY# = Wrapvalue(aY#+5)
   	If Rightkey()=1 then aY# = Wrapvalue(aY#-5)
   	Rem rotacionar a esfera
   	Yrotate object 1,aY#
   	Rem Atualizar tela
   	Sync
   Loop

Você deve identificar o código anterior deste tutorial. Nos próximos tutoriais nós devemos reutilizar o código de outros tutoriais anteriores. Se você ver um comando com qual você não está familiarizado com ele não é explicado provavelmente você irá pesquisar tutoriais anteriores para refrescar sua memória ou consultar os arquivos de ajuda. Vamos dar uma breve olhada nas variáveis. Variáveis são nomes que você pode utilizar para armazenar valores. O DarkBASIC utiliza vários tipos de variáveis que são distinguidas pela extensão da variável. Olhe para esta linha deste código de exemplo.

   aY# = Object angle Y(1)

Nesta linha nós estamos armazenando o ângulo Y do objeto 1 na variável "aY#". Repare no símbolo "#" no final do "aY#". Ele permite o DarkBASIC reconhecer o que você deseja utilizar um floating point variable (variável de ponto flutuante). Um floating point variable é um número que tem ponto decimal; 3.5, -5.5 ou 0.00001. Ele permite você armazenar números fracionários e é melhor utilizado quando você deseja armazenar uma coordenada ou um ângulo. Outras variáveis utilizadas pelo dark basic são: strings de caracteres, arrays e valores inteiros. Variáveis string utilizam o "$" como extensão e armazenam dados desta maneira " A$ = "Hello World" ". Dados da strings devem ser pontuados com áspas. Os arrays armazenam dados do mesmo modo. Nós iremos discutir arrays no próximo tutorial. Valores Inteiros armazenam números tanto positivos como negativos tal como os exemplos: -5, 5, 2112 or -10000. Valores inteiros não utilizam extensão. O nome das variáveis servem para você poder lembrar de dar a elas uma nome que lembrem o que elas representem. Isto irá ajudar você quando você estiver tentando encontrar erros (bugs) em seu código ou se você estiver distribuindo seu código com alguém. Nós nomeamos esta variável como "aY#" que representa o ângulo Y do objeto "1". Repare que nós não utilizamos o nome inteiro: "AngleY#". A medida que seu código aumenta, você necessita utilizar a variável várias vezes. Para abreviar o nome da variável você torna seu código mais fácil de ser lido e reduz a quantidade de vezes que você necessita digitar.

   Object angle Y(1)

O comando "Object Angle Y" é utilizado para retornar o ângulo do objeto a medida que ele é rotacionado pelo eixo Y. A direção Y pode ser memorizada como a posição de cima e a posição de baixo do objeto da mesma forma que ele é visto em sua cena. O eixo Y onde o objeto rotaciona é uma linha que vai do início da parte superior ao fim da parte inferior assim como o planeta Terra rotacionar em torno do seu eixo que vai do pólo norte ao pólo sul. A direção X vai da direita para a esquerda em seu mundo 3D e o eixo de rotação pode ser lembrado como a maneira que um pneu rotaciona. A cireção Z pode ser lembrada como algo que vai desde a parte da frente até a parte de trás e o eixo de rotação Z é algo parecido com um volante de um automóvel. O modo de utilizar o comando "Object Angle Y" é colocar o número do objeto que você deseja conhecer o ângulo Y entre parênteses. Lembre-se sempre de digitar um comando exatamente do jeito que é colocado no arquivo de ajuda. Neste comando não existe nenhum espaço entre o o "Y" e o primeiro parênteses. Se um comando não for digitado corretamente o DarkBASIC não irá reconhecê-lo como uma instrução válida.

   If Upkey()=1 then Move object 1,2

A instrução "If then" é um poderoro comando de de comparação do DarkBASIC. Você coloca o argumento que desejar para ser testado após o "If" e antes do "Then". Se o argumento for falso ele irá ignorar o que estiver após o "Then". A instrução "Upkey()" é colocado antes do "If" neste exemplo. O comando "Upkey()" é utilizado para checar se você apertou a tecla "seta para cima" no teclado. O comando retorna "1" se você apertou e retorna "0" se a tecla não for pressionada. Se tecla "seta para cima" for apertada ele executa o comando "Move Object". O comando "Move Object" move o objeto na direção em que a face do objeto encontra-se. O primeiro número depois do comando "Move Object" é o número do objeto que você deseja mover. O segundo número é o número de unidades que você deseja mover o objeto a cada vez que o comando é executado.

   If Leftkey()=1 then aY# = Wrapvalue(aY#+5)
   If Rightkey()=1 then aY# = Wrapvalue(aY#-5)

Estas duas comparações de checagem "If Then" servem para ver se as teclas "seta para a direita" e "seta para a esquerda" estão sendo pressionadas. O que acontece depois das teclas "seta para a direita" e "seta para a esquerda" serem pressionadas é diferente. Aqui é onde nós utilizamos nossa variável "aY#" para armazenar um valor. A instrução "Wrapvalue" é um comando de salvamento. Os comandos de rotação do DarkBASIC só aceitam valores que vão do 0 (zero) ao 360. Esta faixa de números representa o número de graus utilizando quando os ângulos são calculados. Se o valor está fora desta faixa de números, o comando "Wrapvalue" continua o ciclo com o restante do número. Veja o exemplo: um valor igual a 365 será colocado em ciclo valendo na verdade 5. Dentro dos parênteses desta instrução que nós colocamos nosso ângulo Y e um operador de adição e subtração. Se a tecla "seta para a esquerda" for pressionada, o valor 5 é adicionado(+) e armazenado na variável "aY#", modificando o valor da variável para o novo valor. O mesmo é feito com a tecla "seta para a direita" com exceção que o valor 5 é subtraído (-) do valor.

   Yrotate object 1,aY#

O comando "Yrotate object" rotaciona um objeto em torno do eixo Y dado um número em graus. O primeiro número após o comando é o Número do Objeto que você deseja rotacionar. O segundo número é o ângulo que você deseja rotacionar o objeto. Repare que nós colocamos a variável onde o número deve ir. Na maioria dos comandos do DarkBASIC, onde um número deve ser colocado, você pode substituir com um variável qualquer. O próximo passo será como utilizar o comando "Sync" para abrir uma "cortina do seu palco" e exibir seus objetos em uma nova posição e rotação no espaço 3D. Tente modificar o valor que é adicionado ou subtraído no comando "Wrapvalue" para analisar a velocidade de rotação do objeto. Tente modificar o segundo número no comando "Move Object" para analisar a quantidade de unidades que o objeto é movimentado. Você pode utilizar um floating point number (comentado no início deste artigo) como 0.5 ou 1.5. É ótimo praticar a colocação de valores decimais se o valor for menor que 1 e maior que 0. Tente modificar o comando "YRotate Object" para o comando "ZRotate Object" ou para o comando "XRotate Object" para analisar como objeto rotaciona-se.

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