Adicionando um visor
afinal estamos
olhando através de um periscóprio
Adicionar o periscópio significa
na prática limitar a visão a uma área determinada
do cenário, com um desenho ou "recorte" não
clássico (um retângulo, por exemplo).
Simplificadamente seriam dois círculos
interligados, imitando o visor do periscópio, ou duas elipses.
O que precisamos fazer é criar o recorte do visor e mostrar,
dentro deste recorte, o que seria a visão do comandante. Na
verdade, temos a visão do mar, naquela TImage de 360
x 186. O que precisamos fazer então é sobrepor a ela
o visor, deixando transparecer apenas o pedaço correspondente
ao que o comandante vê. Para isso usamos o truque da máscara
de impressão (abordado em diversas matérias do club
TILT).
Num editor gráfico qualquer,
partimos das elipses sobrepostas. Removemos a parte interna e a tingimos
de preto. Esta será a nossa máscara de impressão.
Usando esta mesma imagem, num segundo
arquivo, pintamos o contorno com uma cor metálica qualquer.
Para criar a idéa de volume (3D), usei um filtro especial do
Paint Shop Pro, chamado Inner
Bevel. Seleciona-se a região desejada e o filtro se encarrega
de criar o efeito tridimensional, com o tipo de recorte que se deseja.
Este mesmo filtro ainda será usado para produzir "volume"
nos navios, mas isso já é um outro caso.
Temos portanto dois arquivos gráficos:
a máscara, que é na verdade o inverso do que aparece
nas figuras acima (a área visível deve ser branca e
o contorno em preto) e o visor propiamente dito (o correspondente
à transparência deve ser preto).
Para termos a visão, vamos adicionar
ao programa mais duas TImage "invisíveis"
a olho nú, que chamaremos de Mask
e Visor. Na procedure que monta
a visão do comandante, adicionamos:
var
T1,T2,T3,T4: HBitmap;
T3:= Form1.Visor.Canvas.Handle;
T4:= Form1.Mask.Canvas.Handle;
BitBlt(T1,0,0,360,186,T4,0,0,srcand);
BitBlt(T1,0,0,360,186,T3,0,0,srcpaint);
end;
Pronto. Agora o jogador só
vê a imagem que está dentro do visor.
|
|
|