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 criar um "heads up display", um radar de tela simples.

Neste tutorial nós iremos mostrar a você como criar heads up display também conhecidos como HUD. Para tornar mais fácil o encontro do monstro nós criaremos um radar de tela em nosso hud assim como um background transparente para o score.

rem criar um HUD
Make object Plain 200,1,1
position object 200,-2.7,1.9,4
Lock object on 200
ghost object on 200

Este segmento de código é colocado antes do laço principal. Nós criamos um plano de objeto e travamos-no à posição da câmera. Este plano será usado como nosso radar de tela.

Make object Plain 201,1,1
position object 201,2.7,1.9,4
Lock object on 201
ghost object on 201

Este segmento de código é também colocado antes do laço principal. Este plano de objeto será usado como o background para o nosso score de tela.

rem Carregar e criar bitmaps hud.
Load Bitmap "Radar.bmp",2
Create Bitmap 1,50,50

Neste segmento de código, nós estamos carregando o bitmap do radar e armazenando-o como bitmap 2. Um bitmap é diferente de uma textura. Um bitmap pode ser desenhado ou modificado no programa. Um bitmap de importância particular é o bitmap 0. Este bitmap é onde você vê seu espaço 3D. Quando você chamar o comando "Sync" este é o bitmap que é redesenhado e exibido. Nós estamos carregando a imagem "Radar.bmp" para o bitmap 2 e criando um novo bitmap em branco determinando-o como bitmap número 1. Note que pode carregar ou criar somente 32 bitmaps no DarkBASIC. O comando "Load Bitmap" é similar ao comando "Load Image". O primeiro parâmetro é o nome da imagem bitmap que você deseja carregar. O segundo parâmetro é o número que você deseja usar como identificador único para o bitmap. O comando "Create Bitmap" irá criar, na memória, um bitmap em branco de um tamanho especificado. O primeiro parâmetro é o número que você deseja determinar para o bitmap. Os próximos dois parâmetros são a largura e altura do bitmap que você deseja criar. Os parâmetros de largura e altura representam a resolução em pixel do bitmap.

Rem Criar radar
Copy Bitmap 2,1
set current bitmap 1
ink rgb(0,0,255),rgb(0,0,0)
PRX#=X#/200
PRZ#=50-(Z#/200)
Circle PRX#,PRZ#,1
ink rgb(255,0,0),rgb(0,0,0)
MRX#=mX#/200
MRZ#=50-(mZ#/200)
Circle MRX#,MRZ#,1
Get image 200,0,0,50,50
set current bitmap 0
texture object 200,200
ink rgb(255,128,128),rgb(0,0,0)

Este código é colocar próximo ao fim do laço principal. Isto é onde o radar de tela é criado, desenhado e aplicado para o plano usado para o radar de telas.

Copy Bitmap 2,1

O comando "Copy Bitmap" copia um bitmap na memória. O primeiro parâmetro deste comando é o número do bitmap cujo qual você deseja copiar. O segundo parâmetro é o número do bitmap para qual você irá copiar. Aqui, nós estamos copiando o bitmap que nós carregamos para o fundo do nosso radar de tela para o bitmap que nós iremos usar com o radar de tela.

set current bitmap 1

Quando você usar o comando "Set Current Bitmap" você está instruindo seu programa a criar um específico para ser o bitmap principal para desenho. Você deve configurar o bitmap atual para 0 para ver seu espaço 3D. Nós estamos configurando o bitmap atual para o bitmap do nosso radar. Este bitmap contém o bitmap copiado que nós carregamos para o fundo do nosso radar.

ink rgb(0,0,255),rgb(0,0,0)

O comando "Ink" é usado para configurar a cor da frente e do fundo para qualquer do seus desenhos ou textos. O primeiro parâmetro do comando "Ink" é a cor de desenho ink que nós usaremos para o desenho. Nós estamos usando o comando "RGB" para configurar isto para azul. O segundo parâmetro é a cor do fundo. Nós estamos configurando este parâmetro para preto usando o comando "RGB".

PRX#=X#/200
PRZ#=50-(Z#/200)
Circle PRX#,PRZ#,1

Estas três linhas de código são usados para desenhar um círculo azul no bitmap do radar que representa o jogador. As variáveis "PRX#" e "PRZ#" são usadas para armazenar a posição do nosso jogador. Pelo fato de nossa matriz ter 100,000 unidades quadradas e nosso bitmap só possui 50 pixels quadrados, nós dividimos 100,000 por 50 para ter como resultado 200. 200 é nossa variável de escala. Nós dividimos a posição X do jogador por 200 para obter a posição aproximada de X em nosso bitmap de radar. Nós armazenamos este valor na variável "PRX#". Nós fazemos os mesmo cálculos para o valor Z. Pelo fato das coordenadas do bitmap iniciarem no canto superior esquerdo e as coordenadas da matriz iniciarem no canto inferior esquerdo, nós pegamos o valor escalado Z e subtraímos dele 50 para obtermos o valor invertido para o nosso radar de tela. Se nós não fizéssemos isto nosso radar de tela seria exibido de forma invertida.

Circle PRX#,PRZ#,1

Nós usamos as coordenadas X e Z do radar em relação ao jogador para desenhar um círculo nas coordenadas do bitmap do radar. Nós usamos o comando "Circle" para fazer isto. Os primeiros parâmetros deste comando são as coordenadas X e Y no bitmap onde você deseja desenhar o círculo. O terceiro parâmetro é o raio do círculo que nós desejamos desenhar. Nós temos que configurar este valor para 1 para desenhar um círculo bem pequeno.

ink rgb(255,0,0),rgb(0,0,0)
MRX#=mX#/200
MRZ#=50-(mZ#/200)
Circle MRX#,MRZ#,1

Esta linhas de código fazem a mesma coisa que o código anterior exceto pelo fato de nós configurarmos a cor ink para vermelho e nós usamos as variáveis X e Y dos monstros para desenharmos os círculos que representam o monstro no radar.

Get image 200,0,0,50,50

O comando "Get Image" copia um bitmap ou uma porção de um bitmap para ser usado para criar uma imagem que pode ser usada como uma textura. O primeiro parâmetro deste comando é o número da nova imagem que nós estamos criando. O segundo e o terceiro parâmetro do comando são as coordenadas X e Y do canto superior esquerdo da área retangular que nós desejamos copiar para a imagem. O quarto e o quinto parâmetros são os valor X e Y do canto inferior direito da área retangular que nós desejamos copiar para a imagem. Como nossa imagem tem o tamanho de 50x50 pixels, nós estamos copiando o bitmap inteiro para a nossa imagem. Nosso bitmap principal ainda é o bitmap número 1, é daí que imagem é copiada.

set current bitmap 0
texture object 200,200
ink rgb(255,128,128),rgb(0,0,0)

A última parte do código do radar configura o nosso bitmap principal para 0 que é onde o nosso cenário 3D está sendo desenhado. Por próximo nós texturizamos o plano do objeto com nossa imagem recentemente criada. A imagem recém criada contém a imagem do nosso radar com dois círculos desenhados nele que representam o jogador e o monstro. Nós modificamos nosso desenho ink para um cor vermelha. Esta será a cor do ink que será usado até que a tela do nosso radar seja atualizada. Note, os valores armazenados são desta cor.

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