projetos especiais
 
 

Uma animação simples

Como criar uma pequena animação com caracteres redefinidos.


Em primeiro lugar é preciso entender o conceito de caracter redefinido. Historicamente, os Sinclair ZX80 e ZX81 não possuiam tal recurso nativamente, mas (pelo menos aqui no Brasil) houve inúmeros projetos de hardware que implementavam tais recursos, nos TKs e NEZs. Oficialmente, a redefinição de caracteres só aparece (na familia Sinclair) com o ZX Spectrum.

Trata-se de um recurso que permite mudar a aparência de uma letra (por exemplo) mas ainda assim programar como se estivesse tratando de um caracter. Por exemplo, imagine o pac, aquele personagem do jogo pacman.

Trabalhar com plot e unplot torna tudo muito mais complexo, trabalhoso e difícil, então o truque é transformar alguns caracteres em "pac". Acontece que o "pac" possui 16 pixels de largura por 12 de altura, para ter pelo menos essa aparência gordinha.

Então, de posse de um arquivo bmp contendo as duas imagens do pac, entre no Graphos III, no zx80 (via botão Menu). Em seguida clique no botão UDF/UDX,XPLOT. Encontre o arquivo pac.bmp (basta clicar aqui para baixá-lo, se quiser fazer a programação passo-a-passo). Clique duplo no nome do arquivo e...

Clique no botão "P & B" para ajustar as cores do pac. Note que um pac não cabe em um único caracter, então teremos que usar 2 deles. Clique no canto superior esquerdo da imagem dos dois pacs, para garantir que estamos selecionando a primeira metade do pac.

Troque o código 156, por 65 no campo Ascii do caracter. O valor 65 indica que usaremos a letra "A" para essa metade. Clique no botão Converter para UDF. O desenho vai aparecer ao lado do código 65 no fonte, na posição do cursor, vai ser inserido o seguinte código:

UDF 65,7,31,62,124,126,255,240,255,127,63,31,7

Repita o processo para a parte seguinte do pac, mudando o código para 66. O resultado será:

UDF 66,192,240,120,60,124,254,0,128,252,248,240,192

Repita para o segundo pac, códigos 67 e 68.

UDF 67,7,31,60,120,124,255,240,248,126,63,31,7
UDF 68,192,240,248,124,224,0,0,0,0,192,240,192

Agora, basta ir ao fonte novamente e acrescentar o seguinte:

PRINT AT 10,10 "AB"
PRINT AT 10,15 "CD"

Sobrepondo um ao outro, a imagem muda, dando a impressão de que o pac está animado. Basta pressiona ENTER para o pac parar de se mexer.

    LET Tec = 0
    LET Pac = "AB"
    PRINT AT 15,10 Pac
:Volta
    INKEY Tec
    IF Tec = 13 THEN GOTO Encerra
    IF Pac = "AB" THEN GOTO Muda
    LET Pac = "AB"
    GOTO Continua
:Muda
    LET Pac = "CD"
:Continua
    PRINT AT 15,10 Pac
    DELAY 100
    GOTO Volta
:Encerra
    STOP

Agora é com você, fazer ele se mexer pela tela.

 
online