Brincar com as funções de gráficos do BASIC de um micro clássico é uma das coisas mais divertidas que existem. Mas havia uma lacuna na minha experiência. Já mexi com gráficos de TRS-80 (Color e não-Color), Apple II, GW-BASIC no PC, até no FM-7, Thomson MO-5 e Commodore Plus/4… mas nunca no MSX. No feriado, assim do nada, resolvi procurar um tutorial escrito. Achei este excelente curso do Marcelo Silveira, fui direto pra parte de gráficos e comecei a brincar. Muito parecido com o do CoCo, mas obviamente com mais capacidades. O resultado está aí embaixo.
100 SCREEN 2
110 COLOR 15,3,3
120 LINE(0,0)-(255,63),1,BF
130 LINE(0,64)-(255,127),15,BF
140 LINE(0,128)-(255,191),12,BF
150 LINE(0,0)-(100,96),8
160 LINE-(0,191),8
170 PAINT(3,10),8,8
180 IF INKEY$="" THEN 180
190 COLOR 15,0,0
Às vezes as coisas mais simples são as que mais dão satisfação.
6 pensou em “Antes tarde do que mais tarde”
Os comentários estão fechados.
A linha 190 diz tudo!
Comigo é preto no branco! Ops, não, pera…
Eu estou enferrujado, achei que color 15,0,0 produziria o mesmo resultado que color 15,15,15.
Mais parecido com o Coco, mas com menos capacidades
10 CLS 1:RESTORE
20 READ P,A,N:IF P = 255 THEN 180
40 PRINT@P,CHR$(A);:IF N=0 THEN 20
50 FORI=0TON:PRINTCHR$(A);:NEXT
60 GOTO 20
100 DATA 0,128,30,32,128,30,64,128,30,96,128,30,128,128,30
110 DATA 160,207,30,192,207,30,224,207,30,256,207,30,288,207,30
120 DATA 320,207,30,0,191,0,32,191,1,64,191,3,96,191,5,128,191,6
140 DATA 160,191,7,192,191,8,224,191,9,256,191,9,288,191,8
150 DATA 320,191,7,352,191,6,384,191,4,416,191,3,448,191,1
160 DATA 480,191,0,255,0,0
170 GOTO 170
180 A$=INKEY$:IFA$=””THEN180
190 CLS5
200 A$=INKEY$:IFA$=””THEN200
210 CLS
Esse é o espírito!
Nada vai superar um código que vi em Blitz3D, o autor dessa maravilhosa ferramenta liberou de graça, usa linguagem Basic pra manipular a API do DirectX, acho que não tem nem 50 linhas de código, basicamente cria um esfera que vai ser o mundo, inverte as faces, aplica textura, cria um plano pra servir de chão, coloca um câmera pra enquadrar uma área, coloca um luz e cria um retângulo(peça de dominó padrão), aplica uma textura mascarada e com os pontos de uma peça de dominó. O autor usa uma função matemática dentro de um loop pra posicionar as peças de dominó, pra formar um forma de vários círculos e muda a cor de cada peça de dominó de forma randômica dentro da função matemática. São duas linhas de código pra posicionar todos as peças de dominó formando uma forma com muitos círculos e cada peça terá uma cor aleatória. O posicionamento em 3D é dada pela função matemática, faz com que as peças tenham uma curvatura inicial, onde a peça localizada no inicio de uma das pontas da forma, já comece inclinada quando a renderização do jogo começar. Quando vc manda compilar o código, você ver apenas as peças caírem um á um na sua frente! batendo uma na outra como um efeito em cascata! Não tem nem 50 linhas de código Basic, nada de orientação a objeto, tudo modular e com a facilidade da linguagem Basic que você não precisa declarar nenhum tipo de dado, seja na hora de declarar variáveis ou funções !!