Neste número: Jogos, Sprites no MSX, dica: Recursos Gráficos
Sprites no MSX
Artigo Original: Oscar Júlio Burd e Luiz Sérgio Young Moreira
Crie e movimente sprites pelos diferentes modos de tela do seu MSX com algumas das rotinas apresentadas pelos autores deste artigo.
Um sprite é uma figura criada pelo usuário e que pode ser movimentada livremente pelas telas do seu MSX: A tela texto 32x24 (screen 1), tela gráfica de alta resolução (screen 2) e tela gráfica de baixa resolução (screen 3). Os sprites são figuras matriciais, nos tamanhos 8x8 pixels (pontos) e 16x16 pixels, possuindo algumas características interessantes.
A primeira delas é que um sprite pode ser desenhado na tela em um dos 32 níveis (planos) existentes, sendo também possível sua movimentação nestas regiões.
A segunda característica importante é que, ao deslocarmos sprites em planos diferentes, os que fazem parte dos planos inferiores (de trás) são encobertos pelos sprites dos planos superiores nos pontos que se cruzam, dando assim a ilusão de profundidade ao conjunto.
Uma terceira característica são as boas rotinas existentes no MSX BASIC que têm por objetivo auxiliar o programador na colisão de sprites. Por exemplo, quando dois sprites colidem, pode ser acionada uma rotina que gere um determinado som e realize outras tarefas.
A quarta, e última, característica importante dos sprites nos MSX é a disponibilidade de escolher u ma das 16 cores existentes, para visualizá-los na tela.
Existem porém duas restrições no uso de sprites: só é possível colocar um sprite por plano (um máximo de 32 sprites simultâneos na tela de um total de 256 definíveis pelo usuário) e o número máximo de sprites por linha horizontal é quatro (quando isso é desrespeitado, os sprites excedentes desaparecem).
Sprites 16x16
Tendo em vista a inexistência de material bibliográfico que trate detalhadamente da elaboração e manipulação de sprites com 16x16 pixels, resolvemos abordar este tema que, como veremos, é simples.
Por exemplo, vamos criar um sprite de 16x16 com o desenho de um rosto, como o da figura 1.
O primeiro passo é transportar a nossa figura para um papel quadriculado de 16 linhas por 16 colunas, como na figura 2.
O segundo passo é dividir o desenho em quatro quadrantes, cada um contendo oito linhas e oito colunas (veja figura 3).
O próximo passo é o que tem causado mais confusão na cabeça dos usuários da linha MSX, devido a falta de informações a respeito. Vamos lá!
Neste passo devemos passar o desenho do quadrante um, linha a linha, para o MSX através de alguns comandos DATA. Teremos um DATA para cada linha de cada um dos quatro quadrantes.
Para codificar cada linha, devemos associar a cada ponto cheio no desenho um número um (1) e a cada ponto vazio o número zero (0). Na listagem abaixo podemos ver como ficariam os comandos DATA referentes as oito primeiras linhas do primeiro quadrante.
10 SCREEN 0 : WIDTH 40 : KEY OFF
20 FILES
990 REM -- quadrante um
1000 DATA 00111111
1010 DATA 01000000
1020 DATA 10000000
1030 DATA 10011100
1040 DATA 10010100
1050 DATA 10011100
1060 DATA 10000000
1070 DATA 10000000
Agora devemos codificar o segundo quadrante de nosso desenho, de modo idêntico ao quadrante um, sempre respeitando a numeração crescente das linhas. Veja listagem.
1080 REM -- quadrante dois
1090 DATA 10000001
1100 DATA 10000000
1110 DATA 10000000
1120 DATA 10001000
1130 DATA 10000111
1140 DATA 10000000
1150 DATA 01000000
1160 DATA 00111111
De maneira semelhante codificamos os quadrantes três e quatro.
1170 REM -- quadrante tres
1180 DATA 11111100
1190 DATA 00000010
1200 DATA 00000001
1210 DATA 00111001
1220 DATA 00101001
1230 DATA 00111001
1240 DATA 00000001
1250 DATA 00000001
1260 REM -- quadrante quatro
1270 DATA 10000001
1280 DATA 00000001
1290 DATA 00000001
1300 DATA 00010001
1310 DATA 11100001
1320 DATA 00000001
1330 DATA 00000010
1340 DATA 11111100
O quinto passo é a utilização dessas instruções DATA na definição do sprite 16x16 com a utilização do programa MSX BASIC similar ao da listagem.
5 REM -- define sprite 16x16
10 SCREEN 2,2
20 SPRITE$(0)="":B$=""
30 FOR I=1 TO 32
40 READ A$
50 B$=B$+CHR$(VAL("&b"+A$))
60 NEXT I:SPRITE$(0)=B$
Na linha 10 entramos em alta resolução gráfica (SCREEN 2) e definimos a utilização de sprites 16x16 (,2).
Na linha 20 limpamos a variável SPRITE$(0) que é uma variável reservada pelo sistema, sendo que o número 0 indica o sprite a ser utilizado.
Nas linhas 30, 40, 50 e 60 definimos o sprite de número zero com a utilização das instruções DATA estabelecidas anteriormente.
Para visualizar o sprite definido, podemos usar uma rotina similar a da listagem abaixo.
70 REM -- visualizacao
80 PUTSPRITE0,(99,99),3,0
90 GOTO 90
Podemos juntar agora as listagens, e a seguir rodar RUN para executar o novo programa.
Se você deseja obter uma animação, basta alterar a linha 80.
80 FOR I=0 TO 1000:PUTSPRITE 0,(I,99),3,0:NEXT I
Finalizando, indicamos a alteração da listagem para os "MSX curiosos".
5 REM -- define sprite 16x16
10 SCREEN 2,2
20 SPRITE$(0)="":B$=""
30 FOR I=1 TO 32
40 READ A$
50 B$=B$+CHR$(VAL("&b"+A$))
60 NEXT I:SPRITE$(0)=B$
70 REM -- visualizacao
80 FOR I=0 TO 191
90 PUTSPRITE 0,(95,I),3,0
100 PUTSPRITE 1,(95,191-I),9,0
110 PUTSPRITE 2,(I,127),13,0
120 PUTSPRITE 3,(191-I,127),7,0
130 NEXT I
140 GOTO 80
990 REM -- quadrante um
1000 DATA 00111111
1010 DATA 01000000
1020 DATA 10000000
1030 DATA 10011100
1040 DATA 10010100
1050 DATA 10011100
1060 DATA 10000000
1070 DATA 10000000
1080 REM -- quadrante dois
1090 DATA 10000001
1100 DATA 10000000
1110 DATA 10000000
1120 DATA 10001000
1130 DATA 10000111
1140 DATA 10000000
1150 DATA 01000000
1160 DATA 00111111
1170 REM -- quadrante tres
1180 DATA 11111100
1190 DATA 00000010
1200 DATA 00000001
1210 DATA 00111001
1220 DATA 00101001
1230 DATA 00111001
1240 DATA 00000001
1250 DATA 00000001
1260 REM -- quadrante quatro
1270 DATA 10000001
1280 DATA 00000001
1290 DATA 00000001
1300 DATA 00010001
1310 DATA 11100001
1320 DATA 00000001
1330 DATA 00000010
1340 DATA 11111100
Após introduzi-la no micro, digite RUN e execute o programa.
Esperamos ter contribuído com este artigo no esclarecimento das dúvidas sobre este assunto, principalmente daqueles leitores que nos solicitaram estas informações. Até a próxima!
Jogos no MSX
Artigo Original: Divino C.R.Leitão, Digitação: Wilson Pilon
Caçar fantasmas, correr num rally, jogar pingue-pongue, disputar as olimpíadas ou pilotar uma nave espacial são tarefas facilmente realizáveis, para os usuários da linha MSX, que utilizarem os programas descritos nesta seção.
Por mais que se afirme o contrário, os jogos mais conhecidos como vídeo games, sempre foram o carro-chefe na introdução dos microcomputadores em nosso lares. São eles os verdadeiros responsáveis pelo interesse que as crianças (e não só elas) acabam despertando pela informática. Por esta e outras razões, os jogos em computador devem ser encarados como assunto muito sério, além do aspecto de simples entretenimento.
A evolução da informática permite que cada vez mais se possa simular a realidade no vídeo de um simples micro. Para que seja possível ter uma ideia desta grandeza, podemos citar como exemplo os super videogames que a Força Aérea Norte-Americana usa para treinar seus pilotos de caça. São fantásticos simuladores de voo onde o piloto tem todas as sensações de uma verdadeira batalha aérea, sem correr nenhum risco e nem estragar equipamentos caríssimos.
Infelizmente esse tipo de jogo ainda não está ao alcance dos usuários de micros, mas há outros que, em uma escala bem menor, podem trazer para a tela da TV praticamente qualquer aventura, filme, esporte ou o que a imaginação dos programadores puder criar, tornando você o principal protagonista.
Nesta análise serão abordados diversos jogos disponíveis para os equipamentos da linha MSX. Os jogos descritos foram cedidos pelas empresas Sharp, Gradiente e Micromaq, sendo que os programas da última empresa são todos em fita cassete e os das primeiras, em cartucho. Os programas armazenados em cartucho são bastante seguros, podendo ser acessados instantaneamente e a única desvantagem que possuem em relação ao cassete é o preço - já que os jogos em cassete custam em média Cz$ 60,00 contra os Cz$ 180,00 de cada cartucho. Esta diferença de custo corresponde, portanto, ao maior conforto e garantia oferecidos pelo cartucho sobre o cassete.
Durante a análise, após o nome de cada programa, haverá um parêntese contendo as seguintes convenções: "C" de cartucho ou "F" de fita cassete, a inicial do fabricante (Gradiente, Sharp ou Micromaq) e a quantidade máxima de jogadores permitida, acompanhada de "J", "T" ou "J/T" que indicam joystick, teclado ou ambos.
Os jogos em cartucho Olimpíadas I e II da Gradiente.
Macaco Acadêmico (C,S,2,J/T)
Este interessante jogo, no estilo Kong, tem ótimos gráficos e uma movimentação atraente que acaba prendendo qualquer pessoa ao micro, mas seu ponto alto é o fato de ser um jogo educativo para ensinar matemática sem que o usuário se dê conta disto. É um ótimo exemplo da união do útil ao agradável.
Decathlon (C,S,2,J/T)
Que tal ser um super atleta? Você não precisará nem levantar da cadeira para praticar as dez modalidades olímpicas do decatlo. A movimentação é perfeita e os gráficos ótimos, sendo que as duas provas de corrida (400m e 1500m) podem tornar-se bastante cansativas para o braço e o joystick. As outras modalidades porém são bastante agradáveis de se jogar.
Hyper Sports I (C,S,2,J/T)
Neste jogo, você irá praticar saltos ornamentais, salto sobre o cavalo, cama elástica e barra paralela. Os gráficos são excelentes e o controle bastante simples, com aumento progressivo de dificuldade. Um dos mais bonitos jogos do gênero.
Turboat (C,S,2,J/T)
Este programa tem alguma semelhança com River Raid, só que desta vez você será piloto de uma lancha, devendo passar por três fases diferentes, cada uma com um objetivo. Apenas a movimentação é mais complexa, uma vez que as figuras estão em perspectiva. Os gráficos deixa um pouco a desejar, todavia a ação chega a prender o usuário.
Aventura na Antártica (C,S,1,J/T)
Neste jogo, você conduzirá um pinguim através de uma paisagem glacial com o objetivo de alcançar diversas estações polares. No caminho, você deverá recolher bandeiras e apanhar peixes, ao mesmo tempo em que evita buracos no gelo e focas que tentarão bloquear sua passagem. Os gráficos são belíssimos e a movimentação gostosa, pois o jogo cria situações bem humoradas. Ideia para as crianças, mas divertirá também os mais velhos.
Padeiro Maluco (C,S,2,J/T)
Que tal ter a responsabilidade de controlar sozinho o setor de fabricação de uma moderna padaria? Só que, não se sabe como, alguns animais conseguem entrar nas máquinas e roubar os pães e os bolos. Sua missão é espantar os bichinhos para conseguir fazer a sua tarefa em tempo, mas cuidado para não ser mordido. Os gráficos são muito bons e a ação é rápida, exigindo habilidade e raciocínio do jogador.
Galaga (C,S,1,J/T)
O gênero Space Invaders deixou atrás de si um rastro de programas do mesmo tipo, sendo que Galaga é um dos mais dignos representantes desta espécie de jogo. Com um gráfico impecável e ação constante, este programa consegue se destacar dos demais. Há diversas fases com inúmeras figuras que mantêm o interesse do jogador.
Columbia (F,M,1,J/T)
O nome original deste programa é Sky Jaguar e o título Columbia foi dado porque lembra um jogo com este nome e que faz bastante sucesso nos fliperamas. Os gráficos são excelentes e a movimentação das personagens de ação rápida e constante, exigindo assim o máximo de habilidade do usuário. O objetivo do jogo é controlar uma nave sobre uma paisagem futurística e enfrentar diversos tipos de inimigos até encontrar uma base em forma de disco voador, a qual você deverá destruir. A cada base destruída aumenta o nível de dificuldade.
Hyper Sports 2 (C,S,1,J/T)
Agora você irá praticar tiro ao prato, arco e flexa e levantamento de peso. A última modalidade é um pouco monótona mas as duas primeiras compensam. Bons gráficos e controla fácil.
Olimpiadas I e II (C,G,2,J/T)
Cada cartucho contém quatro modalidades de esporte olímpico, com gráficos bem aprimorados, controle fácil. São elas, respectivamente: 100m rasos, salto em distância, lançamento de martelo, 400m, 110m com barreiras, lançamento de dardo, salto em altura e 1500m. Vale um destaque para a belíssima melodia que abre o jogo em Olimpíadas I: "Charriots of Fire".
Fiscal de estoque (C,S,1,J/T)
Apesar do nome, é um videogame e não um utilitário. É um jogo de raciocínio onde você terá que colocar várias caixas nos seus lugares em um tempo marcado pelo micro, sendo que a dificuldade é o fato de a personagem ser capaz de empurrar apenas as caixas que estão espalhadas em um labirinto. Os gráficos são pobres, mas a estratégia é interessante, merecendo destaque o fato do programa estar todo em português e ainda permitir que o próprio usuário crie seus labirintos, os quais podem ser armazenados em fita cassete. O jogo já vem com 60 labirintos.
Prédio assombrado (C,S,1,J/T)
Neste jogo, você terá que escalar as paredes de vários prédios evitando monstros e objetos diversos que caem dos andares superiores. Os gráficos são razoáveis e a ação é bastante rápida, o que requer do jogador muita habilidade com os controles. Este programa está com as instruções e mensagens em português.
Ghost Busters (F,M,1,J/T)
Quem já assistiu o filme de mesmo nome poderá reviver as emoções de salvar uma cidade das forças do mal. É um jogo do tipo aventura, com várias fases, onde o objetivo principal é caçar fantasmas. Você poderá escolher entre quatro tipos de veículos e equipá-los com ferramentas para caçar fantasmas, mas para isso precisará de dinheiro. Na primeira vez que jogar, o banco lhe emprestará dez mil dólares para você abrir uma empresa de caça aos fantasmas. Se obtiver sucesso, você ganha uma conta secreta e uma senha para usar o seu saldo no banco e o mais interessante é que esta senha funcionará sempre que você usar o programa. Os gráficos são bons e a música tema do filme o acompanhará durante o jogo em uma excelente interpretação do seu MSX.
Ping-Pong (F,M,2,J/T)
Se você alguma vez já jogou pingue-pongue vai se surpreender com o realismo conseguido por este programa na simulação do jogo, se ainda não jogou, é uma boa oportunidade para começar pois o programa já vem com a bolinha, as raquetes, a mesa, o adversário e até a torcida. O efeito de profundidade dos gráficos é excepcional e a ação é facilmente assimilada pelo jogador ou jogadores, já que você pode jogar com o micro ou com um parceiro. Desde o som da bolinha quicando na mesa até um ruído avisando que pode ser dada uma cortada, tudo está muito bem cuidado neste programa que faz a contagem e um julgamento imparcial, sem perigo de erro ou proteção a qualquer dos jogadores. Indispensável para quem tem um MSX.
Flipper (F,M,4,T)
Se você é daqueles que adoram jogar fliperama de mesa, eis aqui a sua oportunidade de economizar alguns cruzados. Neste jogo, para colocar uma ficha basta apertar a tecla "C" e depois tentar fazer o maior número de pontos possível. Os gráficos são bons e a movimentação agradável, o programa só peca na insistência de manter constantemente um ruído que se torna irritante após algum tempo de jogo e que não tem muito a ver com os ruídos de uma verdadeira máquina de flipper.
Road Fighter (F,M,1,J/T)
Este é um fantástico programa de corridas onde você participará de um rally em seis paisagens diferentes. A sincronização do programa com som e imagem está excelente e a ação é muito bem trabalhada, tanto que ao bater o jogador ainda tem a possibilidade de poder controlar o carro durante a derrapagem. Dos jogos do gênero, é sem sombra de dúvida um dos melhores, pois alia excelentes gráficos a uma bem elaborada movimentação.
Yie Ar Kung Fu (F,M,1,J/T)
Ligue seu micro e torne-se um mestre das artes marciais. Neste jogo, você enfrentará vários adversários, cada qual com uma especialidade de luta. O primeiro luta com um bastão, em seguida, você vai enfrentar o engolidor de fogo, depois tente vencer um lutador que usa uma perigosa corrente, não subestime o próximo inimigo por ser uma mulher, pois ela domina o uso do shuriken (estrelas pontudas e fatais), mas, o adversário mais temível é o último, um grandalhão que simplesmente voa para cima de você com todo seu peso.
Nos intervalos de algumas lutas, você pode ganhar alguns pontos extras quebrando tijolos e outros objetos. Outra forma de ganhar pontos extras é vencer uma luta sem ser atingido (vale 500 pontos), é importante fazer muitos pontos para poder ganhar vidas extras. Excelentes gráficos, uma movimentação muito boa e uma musiquinha japonesa ao fundo tornam este jogo mais um que você não pode deixar de ter em sua coleção.
Cannon (F,M,1,J/T)
Que tal ser o último sobrevivente de um batalhão de artilheiros e ter a responsabilidade de defender sua cidade? Parece difícil, mas esta é a aventura que você encontrará em Cannon. Para enfrentar tanques a aviões, você só tem um canhãozinho difícil de controlar mas que, quando acerta, destrói o alvo. Os gráficos são bons e a movimentação um pouco complicada, porém é aí que está o ponto forte do programa.
Macaco acadêmico e Turboat são alguns jogos em cartucho da Sharp.
Dicas
Recursos Gráficos
Explorando um dos melhores recursos da linha MSX, os recursos gráficos. Rode o programa da listagem e veja.
10 SCREEN 2
20 C=2+14*RND(-TIME)
30 R=70*RND(-TIME)
40 CIRCLE(255*RND(-TIME),191*RND(-TIME)),R,C
50 GOTO 20
WebMSX
- ms-58.dsk: Rode os programas pelo WebMSX