Programação em G-Basic para Magic Computer
Programação em G-Basic para Magic Computer
EM BASIC
ÍNDICE
• • • •
Subrotinas 20
Matriz 21
Gráfico de Fundo 32
F-Basic 35
Apêndice 37
Exemplos 41
PROGRAMAÇÃO
EM BASIC
• • • •
A LINGUAGEM G-BASIC
A linguagem G-BASIC (GRAPHIC BASIC) se diferencia do BASIC
normal pelo seu uso para animações e pelo modo "BG
GRAPHIC" (Gráfico de Fundo).
• E mais simples. Usa apenas palavras em inglês e os símbolos
matemáticos.
• Permite que se execute um programa apenas utilizando o teclado,
sem nenhum outro programa especial.
• Inclui todas as funções de cálculos e gerenciamento de dados do
BASIC.
2
• Pode apresentar figuras com 52 cores e animações.
CONSTANTES E VARIÁVEIS
CONSTANTES
Os dados não podem ser mudados enquanto o programa utiliza
uma constante. Existem dois tipos de constantes:
3
teres. Se necessários, é permitido o uso de aspas únicas ' ‘. Uma
string constante sem nenhum caractere entre aspas é considerada
uma string nula.
VARIÁVEIS
4
car outro parênteses dentro de um parênteses, forçando priori
dade na solução da operação que estiver no parênteses interno.
2» * , / O símbolo à esquerda é sempre o primeiro em
3. MOD prioridade se houverem dois símbolos de mesma
4* + / ‘ prioridade.
• Expressão aritmética:
Apenas um inteiro ou a junção de dois inteiros e um símbolo
matemático formam uma expressão aritmética.
Ex.: 87 - 51 x 65 fica assim: (87-51 *65)/( 18+48/3)
18 + 48 + 3
SÍMBOLOS E EXPRESSÕES RELACIONAIS
5
• A prioridade em uma operação lógica é:
[Link] 2. AND 3. OR 4. XOR
• Uma operação lógica pode ser usada com o comando IF.
IF X>0 AND X<10 THEN 100 SIGNIFICA QUE "SE X TIVER VALOR TAL QUE
0<X<10, ENTÀO IR PARA A UNHA 100 PARA EXECUTAR O PROGRAMA EM
OUTRO NÚMERO."
AO ENTRAR NO G-BASIC
• Digite o comando NEW, para apagar qualquer programa que
esteja na memória do computador.
• Pressione ENTER antes de digitar qualquer linha de programa,
assim o BASIC irá iniciar as linhas de programa.
Não use as flechas para ir à linha de baixo, porque se o sistema
não receber o sinal da tecla ENTER, não executará a primeira
linha. Não se esqueça de usar letras maiusculas para comandos e
variáveis.
• Se você digitou algum caractere errado (antes de teclar ENTER),
use a flecha para a esquerda 4" para mover o cursor para antes
deste caractere. Apenas digite o caractere certo, e pressione a
flecha para a direita + para retornar o cursor retornar à sua
posição anterior.
6
LISTAGEM DO PROGRAMA
Após inserir cada linha, use o comando LIST para ver cada linha
já digitada do programa.
MODIFICANDO O PROGRAMA
Se houve erros no programa, proceda da seguinte maneira:
• Liste o programa na tela com o comando LIST. Se for muito longo,
selecione apenas a parte onde há erro.
• Utilize as flechas >, I , ♦ e* para mover o cursor à posição
onde se encontra o erro.
• Após posicionar o cursor abaixo do caractere errado, apenas di
gite o caractere certo.
• Se for necessário deletar alguns caracteres, posicione o cursor
abaixo do próximo caractere logo após esses, e então use a tecla
de voltar <^<— > (não use as flechas!) e apague-os.
EXECUTANDO
Após digitar completamente o programa e checar se não há ne
nhum erro, digite o comando RUN ou pressione F8. Se houver um
erro, o programa irá parar e irá aparecer na tela o número da
linha onde há erro. E só consertar o erro e digitar RUN nova
mente.
SAINDO
Para sair do sistema, apenas digite o comando SYSTEM.
7
ENTRADA E SAIDA DE DADOS
»••••••••
EXPRESSÕES PARA ENTRADA E SAÍDA DE DADOS
PRINT
10 A=11 Objetivo: Apresentar na tela o resultado de uma expressão
20 PRINT A matemática ou qualquer expressão contida entre aspas.
30 PRINT 2*A+7 Sintaxe: [linha n°] PRINT (expressão)(,)(;)
40 END
RUN ♦
11 PRINT 2+3
APRESENTA O DÍGITO 5 AO INVÉS DE 2+3
29
10 PRINT 0,9,-78,+13
20 PRINT 4,3,2,1
RUN JL
□o □□□□□□9 □□□□□ - 78 □□□□□13
□4 □□□□□□s □□□□□□^□□□□□qi
Is 8e 152 229
( □ SIGNIFICA ESPAÇO EM BRANCO)
8
ASSOCIAÇÃO (ASSIGN STATEMENT)
Objetivo: Associar a expressão do lado direito do "=" à variável
do lado esquerdo do "="
INPUT
10 INPUT A
20 PRINT A
30 END
RUN 4
? 10 (OS DADOS SUBLINHADOS IRÃO APARECER
AUTOMATICAMENTE, 10 É UM DADO INSERIDO PELO USUÁRIO)
10
REESCREVA A UNHA 20 COM 20 INPUT "A=",A E EXECUTE-O NOVAMENTE
A=10
10
9
REESCREVA A LINHA 20 COM 20 INPUT "A=";A E EXECUTE-O NOVAMENTE
A=?10
10
• A resposta ao comando INPUT deve ser do mesmo tipo da per
gunta. (Ex.: "Quantos anos você tem?" Não pode ser respondido
com "João").
READ e DATA
Objetivo: Cada variável vai obter dados com o coman
10 READ X,Y,Z do DATA quando estiver sido executado o comando
20 DATA 10,20,30 READ.
30 PRINT X,Y,Z,X+Y+Z
Sintaxe: [linha n2] READ variável [{,variável}]
40 END
RUN i [linha n2] DATA constante [{,constante}]
10 20 30 60
• READ deve ser sempre usado antes de DATA. E um
10 READ X,Y,Z comando preparatório para a entrada de dados. As
20 DATA 10 constantes são separadas por vírgula.
30 DATA 20,30 • READ e DATA são comandos que dependem um do
40 PRINT X,Y,Z,X+Y+Z outro para funcionar.
50 END
RUN ♦ • O tipo de dados para DATA tem que ser o mesmo que
para READ, e devem conter a mesma quantidade de
10 20 30 60
variáveis.
RESTORE
Objetivo: As vezes é necessário utilizar uma variável
10 READA,B,C,D
definida pelos comandos READ e DATA. Para não ter
20 DATA 10,20
que reescrever o comando, gastando espaço, existe o
30 DATA 30,40
comando RESTORE, que permite a obter novamente a
40 RESTORE
variável.
50 READ E,F
60 PRINT A,B,C,D,E,F Sintaxe: [n2 da linha] RESTORE [n2 da linha onde está
70 END o DATA desejado]
RUN +
Se não for especificado o n2 da linha onde se encontra
10 20 30 40
o DATA, o RESTORE irá recuperar todo conteúdo do
10 20
DATA.
10
alterado. É pior que os outros métodos.
10 A=10 SWAP
20 B=20
30 PRINT A,B Objetivo: Trocar o valor da l9 va
40 SWAP A,B ; IGUALA 40 C=A riável com o da 2Q variável. Os va
50 PRINT A,B 42 A=B lores têm que ser do mesmo tipo!
60 END 44 B=C
Sintaxe: [n9 da linha] SWAP l9 va
RUN |
riável 29 variável
10 20
20 10
FLUXOGRAMA DO PROGRAMA
Com símbolos geométricos definimos as funções de um programa,
como por exemplo início, fim etc.. Em um fluxograma podemos
verificar falhas no programa.
Diagrama do bloco de Início/Fim: inicia e finaliza o programa
11
COMANDOS DE DESVIO
GOTO
10 s=o
20 READX Objetivo: Transferir o fluxo
30 S=S+X do programa para a linha
40 PRINT "S=";5 desejada e executá-la em
50 GOTO 20 seqüência sem qualquer
60 DATA 10,34,21,32,12 condição
70 END Sintaxe: [n9 da linha]
RUN +
GOTO n9 da linha deseja
S=10 da
S=44
S=65
S=97
S=109
? OD ERROR IN 20
IF...THEN
Objetivo: Especifica o que o programa deve fazer ao encontrar a
determinada expressão.
Sintaxe: [n9 da linha] IF expressão THEN n9 da linha I comando
[{:comando}]
Obs.: a expressão na sintaxe deve ser uma expressão lógica ou
relacionai.
Não
10 READ A,B
20 DATA 234,235
30 PRINT A; B;
40 INPUT C
50 IF C=A-B THEN PRINT "CERTO!": END
60 PRINT "ERRADO, TENTE NOVAMENTE!"
70 GOTO 40
12
ON
Objetivo: Especificar uma função relativa ao resultado de uma
operação.
Sintaxe: [n° da linha] ON expressão GOTO [Link], linha.R2,
[Link]...
[n° da linha] ON expressão GOSUB [Link], linha.R2,
...[Link]...
(RETURN)
GOSUB, RETURN serão explicados a seguir.
RI , R2, Rn são as linhas respectivas aos valores 1,2, n, onde n é
qualquer outro número.
REM
13
STOP, CONT, PAUSE
STOP e CONT
Objetivo: O programa irá parar sua execução ao encontrar o
comando STOP.
PAUSE
Objetivo: Parar a execução do programa por um certo tempo ou
até o usuário pressionar uma tecla.
Sintaxe: [n5 da linha] PAUSE [constante integral]
A constante integral
10 INPUT A é o tempo que a
20 PAUSE execução deve ficar
30 PRINT A parada. Seu valor
40 END varia de 0 até
RUN ♦ +32767.
?2 Se não for definida
(O PROGRAMA PÁRA APÓS PRESSIONAR UMA TECLA)
uma constante inte
2 gral, a execução
OU 20 PAUSE 40 (O PROGRAMA FAZ UMA PEQUENA ficará parada até
PAUSA OU ENTÃO PROSSEGUE COM A EXECUÇÃO)
que o usuário pres
sione uma tecla.
90 END
[n2 da linha] NEXT
14
A variável é usada como um "contador" integral. "X", "y" e "z"
são expressões numéricas. "STEP z" especifica uma adição ao
contador em cada loop. Se não for especificado STEP, será adi
cionado 1 a cada loop.
LOOP INTERNO
CONCEITO DE LOOP INTERNO
IMPRIMIIR UMA TABELA DE MULTIPLICAÇÃO
10 FOR A=1 TO 9
Um loop interno ocorre
20 FOR B=1 TO 9
quando se constrói um loop
30 PRINT A;"*";B;"=";A*B
dentro de outros loops,
40 NEXT
criando vários níveis.
50 NEXT
60 END No G-BASIC, o máximo de
níveis de um loop interno é
5.
PROBLEMAS COM OS
LOOPS
• Os loops que ficam dentro
e fora de um loop interno
não podem se cruzar.
• Dentro de um loop interno,
não se pode usar o mesmo
nome de variável de loop
de outro loop.
• Se há o comando FOR
Usado com THEN, também
deve existir um NEXT
correspondente.
15
MANIPULAÇÃO DE FUNÇÕES E CARACTERES
• •••••• Exjsfem comanc|os no BASIC que permitem a manipulação de
funções e caracteres. No G-BASIC, esses comandos são:
SINAL
Objetivo: Mostrar o sinal de X
10 PRINT SGN(41), SGN(0), SGN(-41)
Sintaxe: SGN(X)
20 END
RUN ♦ Se: X>0 SGN(X)=1
1 0 -1 X=0 SGN(X)=0
X<0 SGN (X)=-1
ALEATÓRIO
10 S=0
20 FOR 1=1 TO 10 Objetivo: Dá um
30 A=RND(10);B=RND(10) número aleatório
entre 0 e X
40 N=1
50'PRINT A;"+";B;"="; Sintaxe: RND(X)
60 INPUT C
70 IF C=A+B THEN 110
80 PRINT "ERRADO! TENTE NOVAMENTE"
90 N=N+1
100 GOTO 50
110 PRINT "CERTO! MUITO BEM":IF N<3 THEN S=S+10
120 NEXT
130 PRINT "TOTAL=";S
140 END
16
MANIPULAÇAO DE CARACTERES
INPUT DE UNHA
17
• 2)CHR$(X)
Objetivo: Converter um código GSCII para seu caractere
[Link] comando é o oposto do comando anterior
(ASC(X$)), e o
10 A=& H1F
X varia de 0 a
20 INPUT B
30 PRINT A, B
255, ou &H0 a
&HFF relativa
40 C$=CHR$ (66)
mente. Todos
50 PRINT CHR$ (B), C$
os números
60 END
RUN ♦ hexadecimais
? & 41 (ASSOCIA NÚMEROS HEXADECIMAIS A B) começam com
31 65 (IMPRIME VALOR COM NOTAÇÃO DECIMAL) o símbolo
"&H".
A B '
• 3)HEX$(X)
Objetivo: Retorna a string que representa o valor hexadecimal
de X HEX$ converte
10 FOR 1=0 TO 20
valores decimais de
20 PRINT I; "=&H"; HEX$(I)
-32768 até 32767.
30 NEXT
Se X é negativo, se
40 END
usa forma de comple
ESTE PROGRAMA CONVERTE NÚMEROS DECIMAIS
mento binário.
DE 0 A 20 EM NÚMEROS HEXADECIMAIS
• 4) VAL(X$)
Objetivo: Retorna o valor numérico da string X$
a) Se X$ não é uma string numérica decimal ou hexadecimal,
o valor retornado será zero.
b) Strings com números hexadeci mais podem ser convertidas
para números decimais, com a adição de &H. Uma string
com números decimais pode ser transferida para o mesmo
número de números decimais.
c) Uma string numérica decimal tem
10 INPUT A$ valor de -32768 a 32767. Uma
20 V=VAL(A$) string numérica hexadecimal
30 PRINT A$="=";V varia de &H0 a &HFFFF. De &H0
40 GOTO 10 a &H7FFF são números positivos,
RUN + &H8000 a &HFFFF são
? & H7FFF negativos (complementos).
& H7FFF=32767
?10
10=10
? AB
AB=0
? (AOERTE BREAK PARA INTERROMPER)
18
• 5) STR$(X)
10 INPUT A,B
Objetivo: Retornar a represen-tação do valor de X
20 A$=STR$ (A)
30 B$=STR$ (B) em string.
STR$ é a função complementária de VAL(X$).
40 PRINT A;B;A+B
50 PRINT A$;B$;A$+B$ • 6) LEFT$(X$zn)
60 END Objetivo: Retornar uma string que equivale a n
caracteres à esquerda de X$. X$ não pode ser
maior que 31 caracteres.
• 7) RIGHT$(X$,n)
Objetivo: Retornar uma string que equivale a n caracteres à
direita de X$. X$ não pode ser maior que 31 caracteres.
• 8) MID(X$,m,n)
Objetivo: Retornar uma strinq de m caracteres do X$,
começando com o caractere n2 n.
A$="ABCDEF",LEN(A$)=6
10 A$="ABCDEF" • 9) LEN(A$)
20 S=LEN(A$) Objetivo: Retornar o número de
30 B$=LEFT$ (AS$,3): C$=RIGHT$(A$,3) caracteres de A$.
40 PRINTS • 10) INKEY$ ou INKEY$(n)
50 PRINT C$ ;"-";B$;"-" MID$ (A$,3,2)
Objetivo: Retornar um carac
60 END tere obtido a partir do teclado.
RUN ♦
Se não especificado, n é 0. O
6 programa vai parar nolNKEY$
DEF-ABC-CD até um caractere ser inserido.
Quando n não é o valor correto, o programa ficar parado no
comando INKEY$ até que o caractere certo seja digitado.
10 A$=INKEY$ (0) ; O PROGRAMA IRÁ PARAR NESTA LINHA SEM A
20 IF A$="A" THEN 50 TECLA SER PRESSIONADA
30 BEEP ; A TECLA PRESSIONADA NÀO É A, ENTÃO
TOCA UM APITO
40 GOTO 10 ; JUMP PARA UNHA 10
50 PRINT A$
60 END
LOCATE E CLS
O G-BASIC divide a tela em 28 colunas (verticais)
10 CLS (X) e 24 linhas (horizontais) (Y). X pode ser entre
20 FORX=1 TO 7 0 e 27 e Y entre 0 e 23.
30 FORA=1 TO 2*X-1 A sintaxe de LOCATE é LOCATE X,Y, deve ser
40 LOCATE 13+A-X,X combinado com PRINT para apresentar o deseja
50 PRINT"*" do (strings, operações...) em um ponto definido
60 NEXT da tela.
70 NEXT CLS é o comando que limpa todo conteúdo da
80 END tela e retornar o cursor ao canto superior esquer
do da tela.
19
SUBROTINAS
O CONCEITO DE SUBROTINA
No G-BASIC você pode criar uma seção de programa indepen
dente, facilitando a edição do programa. Estas seções isoladas
são chamadas de Subrotinas. Quando se usa uma Subrotina eco
nomiza-se espaço na memória e no volume de trabalho.
O formato básico para se utilizar uma subrotina:
n GOSUB m
k RETURN
O programa é exe
10 PRINT "$ $ $ $ $ 1"
cutado normalmente
20 GOSUB 100 ; CHAMA A SUBROTINA
até encontrar n
30 PRINT "$$$$$ 2" DA LINHA 100
GOSUB m, mudan
40 END
do imediatamente
100 PRINT ".............. 1"
seu fluxo para m
110 RETURN ; RETORNA PARA A PRÓXIMA
para executar a sub
RUN ♦ FUNÇÃO DA LINHA 30
rotina. Quando a
$$$$$ 1
* ♦ ♦ ♦ • ]
subrotina chegar a k
RETURN, o progra-
$ $ $ $ $ 2
NESTE PROGRAMA, AS UNHAS 10 A 40 SÃO O
PROGRAMA PRINCIPAL, AS UNHAS 100 A 110 SÃO
SUBROTINAS
20
50 B=RND (10)
60 C=RND (3)4-1
70 ON C GOSUB 200, 300, 400
80 IF R=1 THEN S=S+10
90 NEXT
100 PRINT "PONTOS:",S
110 END
200 PRINT A; B;
210 INPUT X
220 IF X=A+B THEN GOSUB 500: RETURN
230 Y=A+B
240 GOSUB 600
250 RETURN
300 IF A<B THEN SWAP A, B
310 PRINT A; B; "=";
320 INPUT X
330 IF X=A-B THEN GOSUB 500: RETURN
340 Y=A-B
350 GOSUB 600
360 RETURN
400 PRINT A; B; "="
410 INPUT X
420 IF X=A*B THEN GOSUB 500: RETURN
430 Y=A*B
440 GOSUB 600
450 RETURN
500 PRINT ****** CERTO ******
510 R=1
520 RETURN
600 PRINT "ERRADO!"
610 PRINT "O RESULTADO É:"; Y
620 R=0
630 RETURN
MATRIZ
•••••••••
21
10 DIM A (5) variável subscrita.
20 READ A( 1), A(2)z A(3), A(4), A(5) Os subscritos são sempre o mesmo tipo
30 K=A(1)+A(2)+A(3)+A(4)+A(5) de dados. Não são permitidos números
40 PRINT K negativos nem variáveis de strings para
50 DATA 10, 20, 30, 40, 50 os subscritos, apenas variáveis de
60 END inteiros, variáveis simples ou expressões
RUN ♦ (as expressões devem ser designadas
150 antes de serem usadas como subscritos).
Todas variáveis subscritas com o mesmo nome de variáveis
subscritas são chamadas de matrizes, os nomes das variáveis
subscritas são os nomes das matrizes e cada variável subscrita é
chamada de elemento da matriz.
O elemento de uma matriz com um subscrito - A(1), A(2), A(3) - é
chamada de matriz unidimensional, com dois subscritos - A(1,1),
A(1,2) - é chamada de matriz bidimensional.
DIM
Objetivo: O DIM define a matriz, a dimensão da matriz e o valor
máximo de subscritos para cada dimensão.
Sintaxe: [n2 da linha] DIM nome da matriz (inteirol [,inteiro2])
Obs.: 1. Cada matriz só pode ser definida uma vez
2. Um comando de matriz definida pode ao mesmo
tempo definir várias matrizes, cada uma separada
por uma vírgula.
22
COMPOSIÇÃO DE MÚSICAS E CONTROLE DE
SONS
BEEP
Objetivo: Faz o alto-falante do computador tocar um som rápido,
um "bip".
Sintaxe: [n° da linha] BEEP
PLAY
Objetivo: Tocar a música definida pelos caracteres.
Sintaxe: [n2 da linha] PLAY "caracteres".
Os caracteres são definidos assim, e representam nota, oitava,
volume, acorde, melodia e timbre:
• Tempo: define a velocidade em que a música toca. TI (rápido) a T8
(lento)
• Timbre: define o timbre. YO a Y3. Y0=l 2,5%, Y1 =25%, Y2=50% e
Y3=75%
• Melodia:
•MO: define o volume, com VO (baixo) a VI5 (alto)
•Ml: define a duração da melodia, com VO a VI5
•Oitava: define a oitava com OO (agudo) a 05 (soprano)
• Escala: representa as notas usando C a B (ver tabela da direita)
• Pausa: define um tempo de pausa com RO a R9
Valores de tempo das notas: use 0 a 9 após a nota (ver tabela da
esquerda), e use o descanso para definir a pausa ou duração do
som
• Acorde: necessita de dois-pontos se for um dueto ou trio. Cada
canal precisa ter escala, nota, tempo, timbre etc, mas não há
mudança na duração e timbre do terceiro canal
• Pré-definido: T4,MO,V15,O3,C5,R5. Estes parâmetros são utiliza-
dos se não forem especificados 1 C Do
Notas N2 1# #C Do#
1/8 Fusa 0 2 D Re
1/4 Semicolcheia 1 2# #D Re#
3/8 Semicolcheia com ponto 2 3 E Mi
1/2 Colcheia 3 4 F Fa
3/4 Colcheia com ponto 4 4# #F Fa#
1 Semínima 5 5 G Sol
1 1/2 Semínima com ponto 6 5# #G Sol#
2 Mínima 7 6 A La
3 Mínima com ponto 8 6# #A La#
4 Semibreve 9 7 B Si
23
10 PLAY "Ml V6T2O1"
20 A$="CDEFGABR"
30 N=RND (8)
40 B$=MID$ (A$,N+1,1)
50 PRINT B$
60 PLAY B$
70 GOTO 10
APRESENTAÇÃO
COLOR
Objetivo: Utilizar cor em alguma parte da tela
24
CGEN
Objetivo: Seleciona a paleta para o fundo e animações
Sintaxe: CGEN n
n: código da cor entre 0 e 3
CGSET
Objetivo: Decide a paleta para o fundo e animação
PALET
Objetivo: Mudar quatro cores dentro de um conjunto pré-
definido (de 0 a 3)
Sintaxe: PALET BlS n,Cl,C2,C3,C4
B: fundo
S: animação
n: conjunto de cores (de 0 a 3)
Cl: cor inferior
C2, C3 e C4: outras cores no conjunto de cores definido
25
Códigos de cores
Notação 16 10 16 10 16 10 16 10
00 0 10 16 20 32 30 48 Cinza-Branco
Azul 01 1 11 17 21 33 31 49
02 2 12 18 22 34 32 50
03 3 13 19 23 35 33 51
04 4 14 20 24 36 34 52
Vermelho 05 5 15 21 25 37 35 53
▼
06 6 16 22 26 38 36 54
Cores de
07 7 17 23 27 39 37 55 Transição
08 8 18 24 28 40 38 56
Verde 09 9 19 25 29 41 39 57
0A 10 IA 26 2A 42 3A 58
0B 11 1B 27 2B 43 3B 59
OC 12 1C 28 2C 44 3C 60
0D 13 1D 29 2D 45
▼
0E 14 1E 30 2E 46
Preto
0F 15 1F 31 2F 47
cores 2
conjunto de cores 1
conjunto de cores 0
MOVE
DEF MOVE
Objetivo: Definir rolo de animação (há 16 tipos de animação
para usar)
Sintaxe: DEF MOVE (n) = SPRITE (A,B,C,D,E,F)
n: rolos definidos (0 a 7)
A: tipo de animação (0 a 15)
B: direção do movimento (0 a 8)
C: velocidade do movimento (1 a 255)
D: deslocamento (1 a 255)
E: prioridade (0 a 1)
F: conjunto de cores (0 a 3)
• n (0 a 7)
Até oito rolos podem ser definidos ao mesmo tempo.
Cada rolo pode ter várias seqüências de animação
• A(0a 15)
Há 16 tipos de animação:
27
• B (0 a 8)
Há 8 direções de animação:
5
• C (1 a 255)
à velocidade mais rápida (C=l) move 60 pixels por segundo,
enquanto que a mais lenta (C=255) move 60 pixels em 255
segundos. A resolução da tela é de 256 pixels (W) por 240
pixels (H).
• D (1 a 255)
Deslocamento mostra a distância de cada movimento da ani
mação. Se for 2, por exemplo, a distância máxima é de 2X255
pixels.
• E (0 a 1)
0 significa animação na frente do fundo, e 1 é uma animação
atrás do fundo.
• F (0 a 3)
Define o conjunto de cores do rolo. À paleta deve ser definida
antes do conjunto de cores.
MOVE
Objetivo: Iniciar o movimento do rolo
CUT
Objetivo: Parar a ação do rolo
XPOS
Objetivo: Obter a coordenada horizontal do rolo definido
Sintaxe: XPOS(n)
n: rolo (0 a 7)
YPOS
Objetivo: Obter a coordenada vertical do rolo definido
Sintaxe: YPOS(n)
n: rolo (0 a 7)
MOVE(n)
Objetivo: Verificar se o rolo definido já está finalizado ou não
Sintaxe: MOVE(n)
n: rolo (0 a 7)
CONTROLE DE ANIMAÇÃO
DEF SPRITE
Objetivo: Definir a "pose" (figura) da animação
29
B: conjunto de cores (0 a 3)
C: tamanho da figura (0 a 1). 0 é uma figura com uma matriz
de 8x8 pixels com um padrão, 1 é uma figura com matrizes de
1 óxl 6 pixels e quatro padrões
D: prioridade (0 a 1). 0 é a animação na frente do fundo, 1 é
atrás do fundo
E: define a direção da figura para direita ou esquerda (0 ou 1).
0 é a posição em que a figura está na tabela, 1 é a direção
oposta.
F: define se a figura está normal ou inversa (0 ou 1). 0 é a
posição em que a figura está na tabela, 1 é de cabeça para
baixo.
SPRITE
Objetivo: A pose definida na tela pode ser mostrada ou deletada
de qualquer posição da tela
x = (Xx8) + 16
y = (Y x 8) + 24
x,y são as coordenadas da animação
X,Y são as coordenadas da tela
SPRITE ON
Objetivo: Ativar as animações
SPRITE OFF
Objetivo: Desativar as animações e fazê-las desaparecer.
30
FUNÇÕES ESPECIAIS
STICK(X)
Objetivo: Indica a direção do joystick
Sintaxe: STICK(X)
X: 0 ou 1, indica se é o joystick do primeiro jogador ou do
segundo jogador. Há quatro valores indicando as direções do
10 S=STICK (0)
20 IF S=0 THEN PRINT "S=0"
30
40
IF S=1 THEN
IF S=2 THEN
PRINT
PRINT
"S=1"
"S=2" t
50
60
70
IF S=4 THEN
IF S=8 THEN
GOTO 10
PRINT
PRINT
'S=4"
"S=8" i
80 END
STRIG(X)
Objetivo: Indicar se os quatro botões do joystick estão pressiona
dos ou não
Sintaxe: STRIG(X)
10 T=STRING (0)
X: 0 para o joystick do primeiro jogador, 1
20 IF T=1 THEN PRINT "START"
para o joystick do segundo jogador
30 IF T=2 THEN PRINT "SELECT"
40 IF T=4 THEN PRINT "B" SELECT START B A
50 IF T=8 THEN PRINT "A"
IP 2 1 4 8 STRIG(O)
60 GOTO 10
70 END 2P 4 8 STRIG(l)
POS(O)
10 CLS Objetivo: Obter a coordenada horizontal do cursor
20 FORX=0TO25
30 LOCATE X, 0
40 PRINT POS (0)
50 PAUSE 10
60 NEXT
CSRLIN
10 CLS Objetivo: Obter a coordenada vertical do cursor
20 FOR 1=0 TO 20
30 LOCATE I, I
40 X=POS(0); Y=CSRLIN
50 PRINT X; Y
60 PAUSE 20
70 NEXT
31
SCR$
Objetivo: Obter o padrão da posição
10 CLS
indicada
20 LOCATE 0, 10
30 PRINT "MAGIC COMPUTER" Sintaxe: SCR$(X,Y,Sw)
40 PRINT"............... " X: coordenada horizontal (0 a 27)
50 LOCATE 10, 15 Y: coordenada vertical (0 a 23)
60 PRINT SCR$(0, 10) Sw: 0 a 1, obtém o código de padrão
70 A$=SCR$(1, 10) ou o código do conjunto de cores
75 LOCATE 10, 17
80 PRINT A$
90 C$=SCR$(1, 10, 1)
100 PRINT "COR="; ASC (C$)
110 END
GRÁFICO DE FUNDO
••••••••••
PROGRAMA DE GRÁFICO DE FUNDO
INTRODUÇÃO
O programa de gráfico de fundo pode criar os diagramas para o
fundo. Dentro do G-BASIC existem comandos para utilização
desses diagramas, que aparecem mais vividos na tela.
• Selecione G-BASIC
• No menu, escolha BG GRAPHIC
Na tela se encontra o seguinte:
• No canto inferior direito, a lista de padrões:
Para os padrões existem 13 grupos e 8 pedaços em cada grupo,
resultando 104 pedaços. Pressione <HOME> ou <SHIFT+HOME>
para mostrar cada grupo.
• Sobre a lista de padrões, o flecha de seleção de padrão:
Pressione <INS> para mover a flecha para a esquerda e <-<— >
(BACK) para movê-la para a direita
• Ao lado esquerdo da lista de padrões, MODE:
Pressione <ENTER> para mudar a cor do padrão. MODE é o con
junto de cores sendo utilizado. Há 4 cores para serem sele
cionadas em cada conjunto, e cada paleta tem 4 conjuntos de
cores. Um conjunto de cores pode ser usado dentro de 16x16
pixels (4 padrões)
• Ao lado esquerdo do MODE, as coordenadas:
A posição do cursor na tela será indicada nas coordenadas X
(0 a 27) e Y (0 a 21).
32
O cursor não aparecerá ao usar o comando "CHAR", mas apare
cerá ao usar os comandos "SELECT", "COPY" e "MOVE"
x, y: coordenadas de animação
x = (X * 8) + 16 y = (Y * 8) + 24
• SELECT:
Permite que você altere a cor, padrão etc.
Selecione a cor desejada, padrão etc de acordo com as instruções
já dadas. Usando as flechas, leve o cursor à posição desejada,
pressione <SPACE> para inserir o padrão nesta posição. Pressione
<D> para apagar o padrão à posição do cursor.
• COPY:
Permite que se copie um padrão para outra posição, reproduzin
do-o na tela quantas vezes quiser. Após selecionar o comando
COPY, mova o cursor à posição onde se localiza o padrão a ser
copiado e pressione <INS> para copiá-lo. Mova o cursor à
posição desejada e pressione <ENTER> para inseri-lo. Se desejar
inseri-lo em mais posições, mova até outra posição desejada e
pressione < — > (BACK).
• MOVE:
Permite que se mova o padrão a outra posição.
Após selecionar o comando MOVE, mova o cursor à posição onde
se localiza o padrão a ser movido. Pressione <INS> para sele
cionar o padrão e <INS> novamente para fazê-lo desaparecer.
Mova o cursor à posição desejada e pressione < — > (BACK)
para inserir o padrão nessa posição.
• CLEAR:
Faz com que todos os padrões na tela sejam apagados.
Após selecionar o comando CLEAR, pressione <SPACE> para
apagar os padrões da tela.
• CHAR:
Permite que o usuário insira números, letras ou símbolos a partir
do teclado. Após selecionar o comando CHAR, mova o cursor até
a posição desejada e digite o número, letra ou símbolo. Para dele-
tar um caractere, mova o cursor a posição onde se encontra o ca
ractere a ser deletado e pressione <SPACE>
33
O PROGRAMA BASIC E O PROGRAMA DE FUNDO
Usando essa combinação você criará realmente uma animação,
com os movimentos do G-BASIC e o fundo criado.
OBS.:
• Se houver o comando CLS no programa, troque-o por VIEW. Se
não, coloque na primeira linha o comando VIEW normalmente.
• Se você quiser checar seu programa, é necessário apagar o fundo
antes.
• Use <SHIFT+HOME> para apagar o fundo e retornar o cursor ao
canto superior esquerdo.
• Durante a execução do programa, pressione <BREAK> para
parar.
(1) FUNDO:
PRIMEIRO ENTRE NO BG-GRAFIC E CRIE UMA TELA DE FUNDO.
(2) ANIMAÇÃO
DEPOIS DE SAIR DO BG-GRAFIC, ENTRE NO BASIC E INSIRA O
PROGRAMA ABAIXO.
5 VIEW
10 SPRITE ON
20 CGSET 1, 1
30 FORN=0TO7
40 DEF MOVE (N)=SPRITE (0, N+l, 3, 255, 0, 0)
50 NEXT
60 MOVEO, 1,2, 3,4, 5, 6, 7
70 END
34
F-BASIC
••••••••••
No F-BASIC existem funções que permitem o cálculo de SPN,
COS, LOG, SQR etc., além de várias outras operações matemáti
cas avançadas.
COMANDOS DO F-BASIC
1. HOME : limpa a tela
2. FRE : indica o espaço livre na memória
3. POKE : escreve urn byte de dados em certa
parte da memória
4. TRACE : ativa rastro
5. UNTRACE : desativa rastro
FUNÇÕES BÁSICAS
Função Objetivo
SIN(X) calcular o valor trigonométrico do seno de X
35
Função Objetivo
INT(X) unir uma expressão a um número inteiro
STRINGS
1. VAL(X$) : retorna o valor numérico da string X$
2. STR$(N) : retorna uma representação em string do valor
de N
3. CHR$(N) : converter um código GSCII a seu caractere
equivalente
4. LEN(X$) : retornar o número de caracteres em X$
OUTRAS FUNÇÕES
1. TAB(N) : espaços na tela até a posição N
2. PEEK(M) : ler uma parte específica da memória
36
Descrição F-BASIC G-BASIC
Funções numéricas 11 tipos de função Apenas ABS, SGN e RDN
OPERAÇÃO
• Use NEW para apagar o programa inteiro ou AUTO para apa
gar apenas linha específica
APÊNDICE
••••••••••
• KEY
Objetivo: Muda as funções das teclas Fl a F8
Sintaxe: KEY N, "comando"
N é a letra da tecla de função (1 a 15)
"comando" é o comando a ser designado a essa tecla. Para
especificar <ENTER> após o comando, coloque
"comando"+CHR$(l 3)
• FRE
Objetivo: Lista a quantidade de memória livre
37
TABELAS
Tabela de códigos de padrões A (usada em ani
mações)
38
Tabela de códigos B (usada no fundo)
Padrões para o desenho do fundo. 0 a 31 e 184 a 255 são as va
riedades de figuras para o fundo, os outros são números e letras.
Os padrões 32 a 127 também são usados no F-BASIC
39
Poses das figuras para animação
86 helicopter 87
1 I4 fanny jeüy 1,5 114 fanny jelly 122 tank '22 I2® tank ^27
145 148_________ 149 152
40
EXEMPLOS
»••••••••
10 DIMS (10) 120 SWAP S(l), S(P)
20 FOR 1=1 TO 10 130 NEXT
30 READS(I) Í40 PRINT "DADO SORTEADO:"
40 NEXT 150 GOSUB 200
50 PRINT "OS 10 DADOS INSERIDOS SÀO:" 160 DATA (10 NÚMEROS)
60 GOSUB 200 170 END
70 FOR 1=1 TO 9 200 FOR 1=1 TO 10
80 P=l 210 PRINT S (1);
90 FOR J=l TO 10 220 NEXT
100 IF S(JI)<S(P) THEN P=J 230 PRINT
110 NEXT 240 RETURN
5 CLS
6 LOCATE 8, 12: PRINT "MAGIC COMPUTER"
10 PLAY "Ml Y1 V7T3:M1 Y1 V5T3:M1T3"
20 PLAY "O2A6G3F5G:O2R3FCEDCEC:O1 FC"
30 PLAY "A5AA7:RFCFRCO1 AO2CFC"
40 PLAY "G5GG7:RECERCD1GO2C:O2CO1G"
50 PLAY "A5O3CC7:RF5AO3C3AG:FC"
60 PLAY "O2A6G3F5G:O2RFRERDRC:FC"
70 PLAY "AAA7:RFFFRCCC:FC"
80 PLAY "G5#AA6G3:RERGRERC:O2CO1G"
90 PLAY "F9:FCFAO3F7:F5CF7"
RUN ♦
41
OLINflCC>M
Caixa Postal 6407 • CEP 01051-970 • São Paulo - SP
PRODUZIDO
NA ZONA FRANCA
DE MANAUS
CONHEÇA A AMAZÔNIA