APPLICATIONSDIVERS ★ Uma “spriteadela” noCPC464 ★

Desenhador de sprites (Amstrad Magazine)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

O CPC 464, apesar de mais limitado do que os seus sucessores, é um computador muito bem concebido e extremamente poderoso em todas as áreas com excepção de uma única: a dos gráficos.

Com efeito o 464 apenas dispõe das vulgares instruções PLOT e DRAW, ignorando pura e simplesmente os sprites, as instruções FILL, ou instruções SCROLL, tão comuns em muitas máquinas da sua geração, e em quase todas as que lhe foram posteriores. Este artigo tem o intuito de rectificar a deficiência que apontámos, acrescentando cinco novas instruções ao BASIC do CPC 464. Na realidade, trata-se de acrescentar mesmo novas instruções ao BASIC através de algumas rotinas em assembler, e não de aproveitar pequenas sequências de POKE's e CALL's.

A listagem 1, quando introduzida e executada, tornará disponiveis estas instruções, porém, antes de qualquer uma delas poder ser utilizada, tem de se activar o novo conjunto de instruções através de CALL 37000. As instruções agora adicionadas são as seguintes:

SPRITEON, X, Y, Z - Só funciona em modo 0. X é a coordenada do eixo X (valor situado entre 0 e 143), Y é a coordenada do eixo Y (valor situado entre 0 e 183), e Z o número do sprite (1 a 15). Se algum destes valores não se encontrar dentro dos limites acima especificados, a rotina devolverá o controlo ao interpretador de BASIC, sem ter efectuado qualquer tarefa.

SPRITEOFF,X,Y - Funciona em moldes idênticos aos da instrução SPRITEON retirando um sprite do ecrã em vez de o imprimir. Não é necessário indicar o número do sprite a retirar.

FILL,X,Y,Z - X é a coordenada do eixo X, e Y a coordenada do eixo Y (utilizando ambas as coordenadas os valores já referidos em SPRITEON), indicando o valor Z a cor em que o preenchimento da área especificada deve ser efectuado. Esta instrução funciona em qualquer modo de vídeo.

SCROLLU - Executa um scroll de uma linha para cima.

SCROLLD - Executa um scroll de uma linha para baixo.

Todas as novas instruções agora adicionadas necessitam de ter como perfi-xo o caracter “|”, comum aos comandos RSX, e conseguido através de SHIFT+"@". Este é o método que o programa interprete inclui para dizer ao CPC que os comandos novos existem sobre a forma de Extensões Residentes do Sistema.

Depois de ter introduzido a listagem 1 no computador e de a ter executado correctamente, guarde o programa-máqui-na resultante através de SAVE “comandos”, b, 37000,500 e, sempre que necessitar destes comandos, carregue-os em memória através de 36999: LOAD “”: CALL 37000.

A segunda listagem apresentada (listagem 2), é um editor de sprites que cria os códigos necessários para que estes posteriormente se possam reconstituir. Sem ele os dois primeiros comandos seriam quase inúteis.

Assim, para concluir a sua nova pac-kage de gráficos conseguida em estilo de “faça você mesmo”, introduza e execute a listagem 2, e crie tantos spri-tes quantos desejar. Para esse efeito ser-lhe-à apresentada uma grelha com uma lista de cores de um lado e uma lista de comandos no topo. O cursor que pode ser movido na grelha - com o joystick 1, ou com as teclas de cursor -pode fixar ou apagar a cor, utilizando, respectivamente, a cor de tinta, ou cor de fundo, através da tecla “COPY”, ou do botão de disparo. Desenhar com este editor é relativamente simples: ao premir a tecla “COPY” ou ou botão de disparo do joystick, a célula ocupada pelo cursor aparece preenchida pela cor de tinta activa, voltando novamente à antiga cor de fundo depois de premida a mesma tecla, ou botão. Os comandos disponiveis no topo da grelha são os seguintes:

  • P - Mudar de caneta (PEN) - as cores das canetas estão impressas à direita do écran.
  • I - Mudar a cor da tinta de uma caneta.
  • N - Começar o trabalho - ou continuá-lo - num outro sprite.
  • C - Apaga um sprite e utiliza uma grelha limpa.
  • S - Armazena os sprites em cassete.

Utilizando todos estes comandos po-, demos desenhar e gravar em cassete inúmeros sprites, por mais complexos que estes possam ser. Posteriormente todos eles podem ser carregados em memória através de LOAD “”, e utilizados pelas instruções SPRITEON e SPRITEOFF, tal como referimos no inicio do artigo.

A última listagem deste artigo (a listagem 3), é uma simples demonstração das instruções criadas. Para observar a demonstração, introduza a listagem em causa carregando de seguida as novas instruções em memória, através de 36999: LOAD “” : CALL 37000, e execute-a normalmente.

Esta demonstração explica como usartodas as novas instruções. Contudo, a parte mais interessante é, sem dúvida, a demonstração das instruções directamente ligadas aos sprites.

Utilizando uma das interrupções do Z80, as rotinas usadas conseguem movimentar o sprite no ecrã a uma velocidade constante, movendo-o um pouco e trazendo-o de novo ao lugar, conseguindo com isso o efeito de animação que permite, por exemplo, conceber “jogos de naves” em BASIC com uma velocidade satisfatória. Se, contudo, forem utilizados vários sprites e/ou forem deslocadas grandes porções de memória, o movimento torna-se irregular, podendo mesmo tornar-se muito pouco estético - ver a primeira demonstração de deslocação de sprites. Por outro lado, se se utilizar um número limitado de sprites e uma deslocação de, por exemplo, 1 pixel de cada vez, o movimento é extraordinariamente suave - ver a segunda demonstração de movimento de sprites.

Para finalizar deve referir-se que os comandos FILL e SPRITEON pressupõem uma cor de fundo em caneta 0, sendo imprevisível o que poderá acontecer numa outra situação, em todo o caso isto não deve constituir problema de maior dado que, ao ligar o computador este utiliza imediatamente uma cor da caneta 0 como cor do papel.

Amstrad Magazine

★ PUBLISHER: Amstrad Magazine (Publinfor)
★ ANNÉE: 1989
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR(S): ???
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-Desenhador  de  Sprites    (Amstrad  Magazine)    LISTING    PORTUGUESEDATE: 2018-09-05
DL: 236
TYPE: PDF
SiZE: 662Ko
NOTE: 6 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » RSX Charsave/Charload (Computer Schau)
» Applications » LambdaSpeak Speech Synthesizer
» Applications » RSX Clearstack (Schneider Aktiv)
» Applications » Paper Change
» Applications » Disc-RSX
» Applications » 16 RSX Befehle by Alexander Bloss (Compute Mit)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 526 millisecondes et consultée 1171 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.