You are on page 1of 24
rf ina | (wn i ‘om (vn ‘i an Cnl iw - CODIGO DE MAQUINA J adi alee) co Pare Weel kee ani Uie s9 ae BASIC - PROGRAMACAO DE JOGOS Vol.1 NE 10 NESTE NUMERO REUNA SEUS DADOS EM GRAFICOS Converta seus ntimeros em graficos de barras. Co- mo usar 0 programa. Introducao de informagées, edicdo e elaboraco dos dados x Ane CRIE SPRITES NO MSX Como definir e movimentar sprites. Uso e funcio- namento do programa, Controle de colisdes. 188 CONJUNTOS: CAIXAS DE INFORMAGAO, Utilizacdo dos conjuntos. Como dimensioné-los. Atribuig3o de valores. Aprenda a analisar a in- formacao 192 TRADUCAO MANUAL DO ASSEMBLY O que séo mneménicos? Formas de enderecamen- to. Como converter os cédigos. Desvios. O uso de rétulos 196 PLANO DA OBRA. “INPUT” é uma obra editada em fasciculos semanais, ¢ cada Conjunto de 15 fasciculos compe um volume. A capa paraenca- dernagdo de cada volume estaré a venda oportunamente. COMPLETE SUA COLECAO Exemplaresatrasados, até seismeses 4p6s 0 encerramento da cole, poderto ser comprados. a preresatualzados, da seuine forma: 1. Pssoalmeste — po! melo desea jornaleiro ou dirigindo-saodistibuidr local cujoendereso po der se faclmenteconseguido junto a qualquer jrnalco de sua cdace. Erm So Paulo os nderesos st: Rus Brigadero Tobias, 773 (Centro, Av lust II? Sano Andree no Riode lant: Rua ca Passager, 93 (Bovatos0).2 Por ‘arta — Poder ser solids exemplaresatracadostambbm por eat, que deve Serenviada para DINAP — Disibuidor Nacional de Publicagbes — Nameros ‘Atrsados — Estrada Vela de Osasco, 132 Jardim Tereza) — CEP 06000 — (Osasco— Sao Paulo 3. Por lex ~ Ulize on" (Il) 33670 ABSA. Em Porta- gah os pedidosdevem set fetos a Distibuidora Jardim de Publicagtes Ltd. ‘Gua Pau Varin Asinhaga de sais 2688, amarate Lisboa; Tel 2572502 “Apartado $) ~ Teles 43089 JARLIS P ‘Naove pagamentoantecpado. Oatendment ser Sto pelo eemboko posta opagamentaIncluindo as despesas posts, deverd ser efetuado ao se retat ‘tencomendana Agénciado Correa Alenia: Aposseismesesdoencerameno ‘acolegda, os pedidos serdo atendidos, cependendo da disponibiidade dee {gue Obs: Quando pedilivzos mencione sempreotitule/ouo autor da oba, lem do numero da eto COLABORE CONOSCO Encaminhe seus comentarios, criticas, sugesties ou reclamagdes a0 Servico de Atendimento a0 Leitor —Caixa Postal 9442, ‘Sao Paulo—SP. or ‘COLARORADORES vicToROVTA icine REDAGAO e ‘Constr Eira Responsive De era ME stain [Dino oe selnornates Soni do Univer Edu de Capita tora DKTAQUEST Asesorinem bois Trdg: aa Fran Stat 5 de Tete: As Maria igueran Aono Fac de Ober Kae Ap. Get Lee oti \ Nara eal, Plfepe Menone Reon Coordemder J Marae Ass Revisor Coco parca Gail ele de (Goran pa Apaeoa mt Mar do Gare Lene ent Mara as Sines Mara Tees MarrsLapes ; Dietor Eatin ara Raiges dor chee aude Aiea Edler dete io AV Caan Edler de Are bso Bre (heed rears ia ‘Astents de Arte: on Ola oes Divacy Sra JngMarade Over Gace hata Nowa euron Cra Secreta de Redan Coordenaor: Series Severs dees: es agi J Beso ewes Danso Mare Lourdes Mr Sores Senne Maroc Queer ‘Secret rfc: Aan dio Mati programa ere ile ea Net, ‘toed Bro Freshen athe ne, (Geerdesgh grate ia Sts Aten ere Dagar COMER Diretor Comer Reber Marie Sera GereteComerc iis Frcolacsie ereate Creag: Denis Maas ProDUgio Geren de Protege: so Sang (Cordeador depres Rete Boson Preparador de ext Coerenadr ies aha © Marshal Cavendish Limite, 1984/85, © tata Nova Cultural Lida, Sto Pala, Ba 1386 abate Neve igo organizada pela Editora Nova Cultural Lids (Artigo 15 da Le § 988, de 14/12/1973). Esta obra foi composta na AM Producoes GGafteas Ltda. mpressa na Divisao Gralca da Editora Abril LEE LL LS LG Le A A A AL REUNA SEUS DADOS ite os ntimeros e deixe 0 micro converté-los em histogramas coloridos e bem-feitos. Por meio deles, sera facil comparar valores diversos ou verificar suas tendéncias temporais. sto alguns anin- amas para aplicagOes co- 08 quais se destaca a elabo ‘Aficos sobre estatisticas d vendas, evolugao de cotayao das acdes na Bolsa, etc. Esse tipo de informacdo, que em geral envolve uma quantidade norme de mimeros, torna-se de facil compreenso quando representado por diagramas ou grificos. E se preparar um grafico manualmente € trabalhoso, pa: Ta um computador comercial trata-se d tarefa simples ¢ rapida. A capacidade de representar informa- nilo é, entretanto, atributo exclu: os computadores « a nde-se, também, 20s computadore domeésticos, constituindo-se em uma de suas dreas de aplicagdo pratica. Todos I__COMO FUNCIONA 0 PROGRAMA a ENTRADA DAS INFORMACOES a a CORRECOES ELABORACAO DOS GRAF| . ARMAZENAGEM DOS DADOS 0s computadores apresentados aqui pos- suem capacidade numérica e gréfica que 0s habilita a efetuar esse tipo de traba- aus varidveis de preciso € rafico. com a vasta quantida geradas, por exemplo, por uma peque- ipresa, Mas numerosas questoes que Ihe interessam diretamente podem ser analisadas de maneira prov um microcomputador. Por exemplo, a relago entre seus rendimentos ¢ gastos 5 APLICACOES 5 ie a0 longo de um ano; 0 peso esf em periodos distintos, dos diver ue compdem seu orgamento; ges _mensais de sua capaci poupanga Além dessas areas, cujas ay se assemelham as comerciais, varias outras, sobretudo relag com algum tipo de passatempo, dem ter seus dados analisados| sentados graficamente: a freqi clube local ou a espetdiculos te determinado periodo, €0s ou selos e estatisticas de re esportivos. ‘O programa apresentado se} preparar, rapidamente, um gr barras as variagdes tempo valor. Como os eixos do grafig zontal ¢ vertical) ajustam-se a camente, pode-se trabalhar cot semanais, mensais, anuais ou quer outra unidade de tempo. O intervalo maximo de valo zado pelo programa dependet computador. Para 0 TRS-Col valores situam-se entre +99¢ rao Spectrum, entre +1000 ¢! mais ou menos. Ja para o A\ MSX, tais valores podem ter amplitude — unidades, dezenal has, milhares e até milhdes, se cago assim requerer EI Ao executar 0 programa, ef sentard na tela uma lista das 0} Poniveis (0 menu). Se for selec ‘pedo para a entrada de dado ama pedira os titulos dos da apresentando-os no momento} tracar 0 grafico. Ao entrar com os titulos dq tenha sempre 0 cuidado de corretamente e na ordem pedi xo horizontal (X) representa semanas, meses, anos ou qual tra unidade escolhida. O cixo} (Y) representa os valores dado} ras — cruzados, temperatura, de discos, etc, A’altura de cada barras sera proporcional a est Em seguida, 0 programa pet mero de barras que deve apres ‘mimero maximo possivel deper sicamente, da, TRS-Color, este niimero passa Apple e 0 MSX tém capacid apresentar até 200 barras, mas seu limi te pratico é de cerca de 63. Acima deste alor, as barras ficam muito finas ou ir regulares, constituindo um quadro vi- sualmente pouco claro. As perguntas seguintes feitas pelo programa referem-se aos valores dos da- dos. Sao apresentados na tela os niime- os seqiienciais das barras e uma pergun- ta sobre o valor a ser atribuido a cada Esse valor, positivo ou negativo, 6, novamente, limitado pela capacida- de numérica do seu compujador. No TRS-Color, 0s valores vaoude ~ 999 a +999 e, rio Spectrum, de —1000 a +1000. © Apple eo MXS, por sua vez, trabalham com valores ‘de qualquer magnitude, jd que os graficos so mon- ta uum TRS-Color, e voce deseja represen- tar valores que’estao fora da capacida. de do programa, a solusao ¢ fornecer os dados divididos ou multiplicados por al: gum fator de conversio (por exemplo, em unidades de centenas, milhares, mi Ihdes, etc.). Quando o iiltimo valor for introduzi do, surgiré novamente a lista inicial de opedes. Voce poderd, entlo, escolher en- tre'modificar algum valor digitado partir para a apresentagio do grafico. Se ‘opiar pela modificagdo, 0s valores que di- gitou serdo apresentados na tela. Siga as instrugdes para corrigir 9 valor desejado. ‘Quando estiver satisfeito com 0s va- lores, selecione a opgao que permite a apresentacao do grafico. Os usuarios do Apple e do MSX possuem apenas uma maneira de apresentar seus graficos fico em escala ¢ um gréfico em repre- sentacdo real. 5 APLICACOES 5 A opsio de um grifico escalonado apresenta 0 diagrama de barras com as dimensdes, a0 longo do eixo y, arredon dadas para um valor maximo de 10, 100, 1000, etc., dependendo do valor maxi mo dos dados. Conforme este valor, po- rém, o grafico pode no aparecer inte: ramente na tela. A opedo de um grifico em represen- Teal mostra o diagrama de barras ‘ocupando a tela inteira, apresentando os Valores reals dos dados (no os valores ‘em escala) a0 longo do eixo y ara Melo carer as barras apr sentadas pelo Apple, pelo MSX e pelo Spectrum so separadas umas das ou- {ras por um pequeno espago ou uma barra colorida. O TRS-Color apresenta vos, e de vermelho e laranja, para os va-~ lores negativos. elaboragiio de histo: rotinas principais: © programa gramas tem t ‘* entrada dos da no grafico; * edigao (modificagao) dos dados ja trado: * elaboragao do grifico, jos que serio exibidos Qs dados sdo armazenados no con- junto A pela primeira rotina. © capaci dade desse conjunto é especificada di- namicamente pelo comando DIM, apés ‘usuario indicar 0 mimero de dados que deseja utilizar. Quando o programa en- que se identifiquem os valores minimo ¢ maximo nele presentes. Esses valores so armazenados nas varidveis LO ¢ HI, respectivamente. O valor minimo prede- finido é sempre zero; se os dados apre- sentarem um valor minimo maior, este sera ignorado pelo programa. O valor maximo é arredondado: 10, 100, 1000, 10 000, etc Havendo dados negativos no conjun- to A (valor m enor que zer0), 0 programa definira que o grifico & de ti- po 1; sendo, de tipo 2. Nos graficos de tipo 1, a linha de base (eixo dos x) fica réacima do fundo da tela, e as barras correspondentes aos valores negativos serio dirigidas para baixo, ‘Oescalamento dos valores de um ci xo é feito segundo uma regra simple que leva em conta os valores minimo ¢ maximo, 0 imero de pixels (pontos grificos) que cabem no eixo ¢ 0 arredon: damento ou niio dos rotulos ao longo do eixo. A formula de escalamento & x’ = valor escalado X= valor original xmin = valor minimo na escala xmax = valor maximo na escala pix = nlimero maximo de pixels no Em seguida, 0 grifico & elaborado. BASIC: poder, nesse pont, alter 9 programa para fazer coisas diferentes or exemplo, a versio para o Sinclair Spectrum utliza o comando PLOT ps Comando DRAW, para tragila de uma DRAW por um outro PLOT, obtera tpenay um ponto colorido, correspon dente 20 topo ‘Outta modifcagao se refere a deni 20 das cores. No Sinclar Spectrum, for exemplo, o comando INK determ: € mouificadasutomaticamente pl pro- ama, de modo a alterar a cor da a scant. Por meio de urs comand INPUT, voce pode mudar o programa, determinando que a cor sea solictada 0 usuario. Interessante também éa posibilida- te ou disquete. Nesse caso, 0 menu ini cial deverd ter duas opgdes adicionais: Perens) MSX: grifico da variacio de temperatura ao longo do ano. ‘+ armazenar dados * gravar dados As rotinas correspondentes| a estas chamadas deverdo ser programadas € adicionadas ao programa. Assim, voce podera manter séries de dados armaze- nados (por exemplo, os rendimentos da caderneta de poupanca ou o§ gastos mensais com alimentagao) ¢ atualiza-los com novos valores sempre que quiser compara-los ou verificar sua tendéneia por meio do grafico. Com esta modifi cago, voc’ nao precisard, portanto, di tar os dados anteriores toda vez que executar um programa para elaboragao de grafico. 10 PMODE 4,1 20 cLs 30 PRINT @45, "MENU": PRINT| @102, "1s INTRODUZIR DADOS” : PRINT @16 6,72~ GRAFICO DE BARRAS” : PRINT. €230,"3- VER/CORRIGIR DADOB™:PR INT €294,"4~ SAR DO PROGRAMA” 40 AS=INKEYS:IF AS<"1" OR AS>"4 * THEN 40 50 IF AS="1" AND DA*1 THEN 80 60 ON VAL(AS) GOSUB 1000,2000,3 00,4000 70 GoTo 20 80 PRINT @484,"UOCE TEM GERTEZA 90. AS@INKEYS TF AS@>7Y" >TNT THEN 90 100 IF AS*"Y" THEN CLEAR 200:As ="1":G0T0 60 110 GoTo 20 1000 DA*L:CLS:INPUT"NOME DO EIX oMn KS Gi 1910. XS~LEPTS (XS, 32) :1F XSa"* T HEN X3="EIXO x" AND Aas< 5 APLICACOES 5 1020 MD=1NT(16-LEN (XS) /2) 1030 INPUT"NOME Do EIKO ¥7 1040 YS~LEFTS (¥s,12) :F YS: HEN vs="EIXo ¥" 1050 HT#INT (6-LEN(¥S) /2) 1060 INPUT"NUMERO DE BARRAS™; ND 1070 NB*INT(NB) :TF NBC) THEN 10 60 1080 BL=INT(26/NB):IF BL¢1 THEN BL=1 1090 1200 110 1120 Npur 1130 1140 DIM A(wB) PRINT FOR K-1 70 NB PRINT*VALOR DA BARRA” AW) Next RETURN 2000" IF DA=0 THEN PRINT @455,"D ‘ADOS NAO INTRODUZIDOS":FOR K~ TO 2000:NEXT: RETURN 2010 7P=0:BT=0 2020 FOR K=1 TO NB 2030 IF A(K)>TP THEN TP=A(K) 2040 IF A(K)"E” AND A S<>"N" THEN 2080 2090 IF AS="N" THEN 2120 2100 IF TP>0 THEN E-INT(LOG(TP) 420(20)) :tP-INT(1+TP/ (10°E))*2 2110 IF BIABS(BT) THEN E=2*1NT (L0G(TP) /L0G(1000)) ELSE E=2*IN T(L0G (ABS (BT) ) /L00(1000)) 2160 19="4"4MIDS (STRS (INT (.547P 710°E)),2):BS="":1F BT=0 THEN 2 ZX Spectrum: grafico de Iueros e perdas por mes. 180 2170 Bg=stas (INT (.5+BT/107E)) 2180 Si=1:LP=NB: I NB>26 THEN L Pn26 2190 POKE 179, 243:PCLS:POKE 654 75,0:POKE 65477,0:POKE 65479,0 2200 POKE 179,2 2210 LINE (40,0) - (47,191) , PRESET :BF 2220 IF T$="" THEN 2260 2230 FOR Kel TO LEN(TS) :P-asc(M TDS (T8,K,1)) AND 63:FOR M=0 TO uu 2240 POKE 1540-LEN(TS)+32*M+K,P 2250 NEXT M,K 2260 IF Bs="" THEN 2300 2270 FOR Kel TO LEN(BS) :PeASC(H 1DS(BS,K,1))AND 63:FOR M=0 TO 1 1 2280 2290 2300 POKE 6916-LEN (BS) +M*324K,P NEXT M,K FOR Kel TO LEN(XS) 2310 PeASC (MIDS (XS,K,1)) AND 63 2320 FOR M-162 TO 190:POKE 1503 $HD+32*M+K, P:NEXT 2330 NEXT 2340 FOR Kel TO LEN(YS) 2350 FOR M=0 TO 11 2360 PeASC (MIDS (¥5,K,1)) AND 63 2370 POKE 1568+384* (K+HT) +32*M, P 2380 NEXT M, x 2390 FOR K=5 To 31 2400 POKE 1536+324ST#K,128 2410 NEXT 2420 FOR K=ST 70 0 STEP -22 2430 POKE 1541+K*32, 202 2440 NEXT 2450 FOR K-sT To 178 STEP 22 2460 POKE 1541+K*32, 202 2470 NEXT 2480 FOR K=SL TO LP:Co=(Co#l) A nD 2490 POKE 178, 35+CO*64:POKE 179 34c0*192 2500 IF INT(A(K)*IN)>0 THEN LIN E (48+84(K-SL) MBL, ST-1)~(4748* (K a 2 i TRS-Color: grafico -SL+1) *BL, ST-INT(A(K) AIN)) , PSET BF 2510 IF FIX(A(K)*IN)14 THEN L Pela 3020 3030 3040 3050 3060 3070 QUALQUER OUTRA’ RT; 3080 30 3090 3100 dio 3120 3130 QUALQUER OUTRA, NEXT K IF LP-NB THEN 2570 SL*LP+1:LP=LP+26:1F LP>NB LP=NB IF INKEY$="" THEN 2550 POKE 179, 243:LINE(48,0)~(2 PRESET, BF :GOTO 2390 THEN 2570 CLS: PRINT” BARRA’ FOR K-SL TO LP PRINT K,A(K) NEXT TF NB“LP THEN 3130 PRINT €480,"e PARA EDITAR, PARA CONTINUA sTVALOR™ AS*INKEYS:IF AS="" THEN 30 IF AS="E" THEN 3170 SL“LP+L:LP=LP+1a IF LP>NB THEN LP=NB gor0 3020 PRINT @480,"e PARA EDITAR, PARA RETORNAR 3140 ASSHNKEYS:1F AS="" THEN 31 40 3150 IF Ag="E" THEN 3170 3160 RETURN 3170 CLS:PRINT: INPUT"NUMERO DA ENTRADA A SER EDITADA ?°:E 3180 B*INT(E) STF ECL OR EONB TH EN 3170 3190 PRINT: PRINT"NOVO VALOR DA ENTRADA" :E; INPUT ACE) stribulgdo das notas em uma classe 3200 Goro 3020 4000 CLS:PRINT €37,"VOCE TEM CE RTEZA (S/N) 2” 4010 AS=INKEYS: IF AS<>"S" AND A S<>"N" THEN 4010 4020 IF AS="N" THEN RETURN = 10 LET 90 POKE 23658,8 100 BORDER 7 cus 110 POKE 23609,20 PAPER 7: INK 0 PRINT BRIGHT 1; PAPER 3; INK 7:47 4,10;" 0 PCO ES 120 PRINT "BRIGHT 1;AT 7,4;7 1 ="TwTRODUZIR NOVOS DADOS'” 130 PRINT BRIGHT 1;AT 9,4;" 2 VER / EDITAR DADOS |" 140 PRINT BRIGHT 1;AT 11,4;7 3- GRAFICO EM ESCALA 145 PRINT 4- GRAFICO EM TELA CHETA BRIGHT 1; FLASH 1; 2iAT 16,9;" SELECIONE OPCA IF INKEY$="" THEN GOTO 170 LET AS=INKEYS: IF AS<"1” OR AS>"4" THEN GOTO 160 180 GOsUB VAL AS*1000: GOTO 100 500 REM *AROTINA PARA ENTRADA DE DADOS NUMERICOS** 510 INPUT (ws); LINE aS: IF LEN ag=0 THEN ‘O70 510 $20.FOR 3-1 TO LEN aS S40MnF (ag (2)>="0" AND as (3) 25 OR VO>INT v THEN GOTO 1060 1090 LeT 2qv: DIN a(z) 1100 FOR kel TO z 1110 LET wS="DIGITE DADOS PARA "+5TRS kt" ": GOSUB 500 1120 LET a(k)-v 1130 PRINT k.a(k) 1140 NEXT k: LET 91: PAUSE 50 RETURN 2000 REM **ROTINA PARA EDICAO D E papos** 2010 BORDER 2: PAPER 2: INK 7 2020 LET cn=1 2025 CLS : PRINT PAPER 6; INK 2iAT 0, 0;x8,¥S;TAB 31:7 ” 2030 PRINT ¢n,a(cn) 2035 PRINT #1; PAPER 6; INK 2;A 1 0,0;"EDIT para alterar valor corfente Qualquer tecla para co atinuar 2040 PAUSE 0 2050 IF INKEYS="" THEN GOTO 20 50 2060 LET cS=INKEYS 2070 TF cS=CHRS 7 THEN GOSUB 2 500 2080 1f cn=z THEN PRINT. PAPER 6; INK 2;7FIM DOS DADOS": PAUS @ 100; RETURN 2090 LET cnecntl: IF cne21 THEN ‘GOTO 2025 2100 GoTo 2030 2500 LET wS="INTRODUZIR NOVO VA on PARA “*STRE. ent": GOSUB 5 or 2510 LET afen}hi THEN LEB hina( x) 3040 IF a(k)-.00 REN LET n=0 3340 LET ns=sTRS n 3350 PRINT AT de, (6-LEN AB) in 3360 LET dc=ac+2 3370 Next n 3400 LET ink=1 3410 FOR nel To z 3420 LET ca-org 3430 LET ink=ink+l EN LET ink-2 3440 INK ink 3450 FOR m-1 TO (a(n)*ft) STEP SON a(n) f 3460 PLOT see (noi) sud*B, em: DBA w wa! PLO ner FRO TF ipkes TH 3490 NEXT n 3500 IF INKEYS<>"* THEN 500 3510 IF INKEys-"* THEN GoTo 35 io 3520 RETURN 4000 REM **GRAFICO EM TELA CHET ate 4010 BORDER 0: PAPER 0: INK 7 Lge: LET hi=0: LET 10-0 4020 FOR n=1 TO 2 4030 1F a(n)>hi THEN LET hi-a( n) 4040 1f a(n)estueniog0 1100_DIMVAWBR) PRIN PRINT Lee 8 INPUTVA (I) 1130 NEXT:007010 2000 IFNB2-OTHENLO 2010 GosuBis0 2020. TFSGN (HI) <>SGN (LO) THENHT=A BS (111) +ABS (LO) :GOTO2050 2030 HT=ABS ( (SGN (HI) =1) XABS (HI) (SGN (LO) ==1) *ABS (LO) ) 2040 IFHT-OTHENIO 2050 A~2*INT ((180-34NBE) /NBE/2) $8=3:E8"150/HT 2060 TFA>15THENA~15 2070 IFLO>~OTHENY=15:coT02100 2080 IFHI<=0THENY=5 :GOTO2100 2090 Y=INT (80+ (ABS (HI) ~ABS (LO) ) xES/2) 2100 SCREEN2:COLOR 15,4,4:P-61 2110 LINE (55,5)~ (55,158) :LINE (S2,¥)~(250,¥) 2120 FORT=1ToNBt 2130 LINE (P,¥-SGN(VA(I)))~(P*A SINT (¥- (A(T) *ES))) ,6,BF 2140 P=P+S+a:NE: 2150 OPEN "GRP: " FOR OUTPUTASS 2 2160 PRESET(O,3) 2170 FORI=1T0LEN (YS) 2180 PRINTEL,TAB(1)MIDS (¥S,I,1) NEXT 2190 PRESET (170,160) 2200 PRINT#L,xS 2210 IFSGN(LO) <>SGN (HI) THEN2250 2220 PRESET(0,¥) :PRINT#1, TAB (4) an 2230 PRESET(15, 155+ (150% (HI>0)) ) :PRINT#1, LO* (~ (SGN (LO)==1) ) +8 * (= (BON (HI) =1)) 2240 GoTo 2270 2250 PRESET (15,155) :PRINT#1,LO PRESET (15,5) :PRINT#L, HI | 5 APLICACOES 5 i 5 APLICAGOES 5 — 2260 PRESET(0,¥) :PRINT#1,TAB(4) DE BARRAS,VER / EDITAR DADOS. F 1070 IF NBt > 65 THEN 1060 "or IM DE PROGRAMA 1080 DIM VACNBR) 2270 cLose 30 TAB 3; HTAB 8: PRINT ‘ME 1090 PRINT : PAINT 2280 IFINKEYS=""7HEN2260 Nu PRINCIPAL 1100 FOR T = 1 TO NBR 2290 SCREENO:GoTO10 40 FORT = 1704 1110 PRINT “VALOR DA BARRA *:I 5000 1FNBe-0THENLO 50 READ MS b_ INPUT VA(I) 3010 CLS:LOCATE1O:PRINT“MODULO 60 HTAB 10: VTAB2™ I + 8: PR 1120 NEXT : GOTO lo DE EDICKO" Int 1;7= "iM. 2000 IF NBt = 0 THEN 10 3020 PRINT:PRINTBARRAT, “VALOR” 70 NEXT. 2010 GosvB 110 3030 FORJ=1ToNBE 80. PRINT : PRINT ; HTAB 20: PR 2020 IF SGN (HI) < > SGN (L 3040 PRINTJ,VA(I) INT "OPCAO =>": 0) THEN HT = ABS (HI) + ABS ( 3050 IFINT(J/17)=J/17THENGOSUB3 90. GET RS: TF RS < "1" OR RS > LO): GOTO 2050 090 "a" THEN 90 2030 HT = ABS (( SGN (HI) = 1) 3060 NEXT 100 ON. VAL (RS) GoTO 1000,200 * ABS (HI) + ( SGN (LO) = - 3070 GosuB3090 0, 3000,.4000 1) * ABB (LO) 3080 GoTOLO 110 Lo"= Va.) ar = vac) 2040 IF ur = 0 THEN 10 3090 LOCATEO,20:PRINT*Tecle 120 FORT - 1 TO NBt 3050 Ac 2 INT ((270 - 2.* para editar ou qualquer outea 130 IF VA(I) > BI THEN HI= VA 53) \/ NBR / 2):8 = 2:E5 = 150 / tecla para continuar” @ i 3100 RSTINKEYS TFRS=""THENI100 140 IF ACI) ¢ LO THEN LO- VA 2060 If A> 15 THEN A= 15 3110 TPRSCO"E"THENLOCATEO,3:FOR (I) 3070 Ir to > = 0 THEN Y = 155 H-17019:PRINTSPC (40) :NEXT/LOCAT 150 NEXT : RETURN Goro 2100, £0, 3:RETURN 1000 “HOME : IF NEY < > 0 THEN 3080 “rf RT < = 0 THEN Y = 5120 LOCATEO,20:PRINTSPC(79) :LO __VTAB 15: PRINT TAB( 10)"CONF Goro 2100 GatEO,20:INPUT“Qual barra ";B. IRMA? (5/N)";: GET RS: IF RS < 9999 y=" INT (76 + ( ABS (BI) $130 LOCATEO,21:INPUT"Novo valo > "S* THEN 10 208%ee (L0}) * ES / 2) Fr *:vA(B) 1010" HOME: PRINT TAB( 10)"EN 3100" HGR: HCOLOR~ 7:P = 4 5140 T=B:G0suB150 TRADA DE DADOS" Zilo HPLot 2,0-T0 2.158; HPLOT 3150 GoT03090 1020, CLEAR : VTAB 4: INPUT “No 767¥ 79379,¥ 4000 CLS:LOCATE?, 14: INPUTFIM D ME DO EIKO 'X": "ix3 2130 “HcoLoR- 5 E PROGRAMA (8/N) RS 1030 x8 = LEFTS (x5,5): TF X8 3139 FORT = 1 TO NBE 4010 TFRSC>"S"THENLO = 7" THEN XS = "EIXO-X” sao Won SS LTO A 1040 etme eons 2150 HPLOT 3+ P.Y SGN (VAC 1050 ve = Lerre cvs.5): rf vs 122,30,2,* Pe NF (Y= ACD aO5* THEN YS = "EIXO“Y" ena 10 HOME : RESTORE i060 PRINT : INPUT “NUMERO De 7160 NEXT :P - P + 8 * A: NEXT 20 DATA ENTRAR DADOS,GRAFICO BARRAS: ";NBt 2170. VTAB 21 ; TAB( 34) 349. 2180. vTAB 22 UAL MAX=" HT; VAL MIN=";L0 2190. PRINT TAB( 5) ;"PRESSIONE ‘QUALQUER TECLA PARA SAIR™; 2200. GET RS: TEXT : GOTO 10 3000 IF NBt = 0 THEN GOTO 10 3010 HOME : PRINT TAB( 10)"MO DULO DE EDICAO" 3020 PRINT : PRINT "BARRA™."VA oR” 3030 3040 3050. IF osu 3090 3060 NEXT 3070 Goss 3090 3080 GoTo 10 3090 vTAB 21 TAB 1: PRINT XS PRINT * PRINT ~ RTAB 10 RTAB 25, FOR J = 1 70 NBE PRINT J,VA(J) PEEK (37) = 20 THEN RTAB 1: PRINT °T ECLE PARA EDITAR OU QUALQUE R OUTRA "h: GET RS VIAB 4 ETURN 1100 UTAB 22: TAB 1 ‘TECLA PARA CONTINUAR IF BS <> "E* THEN BAB 1: CALL PRINT "FIM DE PROGRAMA? ";: RS: IF RS < > "8" THEN 10 ‘CCC PL 2 PRoGeamacio asic 12 CRIE SPRITES NO MSX Entre os varios recursos gréficos do MSX, o sprite destaca-se poor servir de base ao funcionamento da maioria dos jogos de acdo Veja como é facil usdto Um sprite é um tipo especial de carac: tere grafico definido pelo usuario, dese nhado em alta resolugo ¢ extremamen. te facil de movimentar, Alguns exemplos de seu uso jé foram vistos em artigos an. teriores. Além da mobilidade, 0 sprite tem outras caracteristicas especiais, tais como a possibilidade de definir e movi ‘mentar mais de um sprite e de indicar se houve colisio na tela — ou seja, se dois sprites coincidiram no mesmo ponto. Nao surpreende, portanto, que os sp {es estejam presentes na maioria dos pro- gramas de jogos. Mas so, também, uti lizados em qualquer tipo de programa que necessite de figuras méveis em alta resolugao — por exemplo, programas fi- nanceiros que empreguem um “icone (simbolo apontando para as op¢oes). Peon ad O desenho de um sprite & definido informando-se ao computador quais pontos devem ser “‘acesos” e quais de- Vem ser “‘apagados", para que se obte. nha o padrao desejado. Existem dois ta manhos de sprite: pequeno (8x8 pontos) e grande (16x16). No decorrer deste ar tio, trataremos apenas dos sprites gran Um sprite grande ¢ formado por de zesseis linhas de dezesseis pontos cada. Em ver de se definir, ponto por ponto, quais sero acesos ou apagados, retinem-se cada oito pontos em um gru- po. Assim, a informagdo sobre o padrao de uma linha do sprite é armazenada em dois grupos de oito pontos cada. Atribuindo-se 0 algarismo ‘‘1"” para os pontos acesos e *0" para os apagados, cada grupo de oito pontos se transfor mard em um mimero bindrio (byte de 8 bits) que, convertido para a forma de cimal, dard origem a um numero entre e255, Cada sprite, portanto, ¢ forma- do por 32 grupos de oito pontos, 32 ni metos bindrios de oito digitos (8 bits ou I byte) ou, simplesmente, 32 nimeros. niimeros sao agrupados em uma li- nha DATA, ordenados como descrito adiante. Caiculam-se da mesma maneira 0s valores para sprites pequenos, ja que es sA0 formados por oito linhas de oi to pontos cada, dando origem a 8 bytes A ordem dos bytes no sprite € a se- guinte Linha 1: BYTE | BYTE 17 Linha 2: BYTE 2 BYTE 18 Linha 3: BYTE 3 BYTE 19 € assim por diante até que: Linha 15: BYTE 15 BYTE 31 Linha 16: BYTE 16 BYTE 32 sendo que os bytes foram numerados na ordem em que aparecerdo na linha DATA. Uma orientacdo para o célculo des: tes valores, uma vez definido © padrio grdfico para o sprite, ¢ dada na figura da pagina 190. Por meio do exemplo, voce teri uma idéia de como obter 0 va. lor decimal correspondente a um gru- po de oito pontos. Se todos os pontos estiveremeacesos, 0 valor decimal sera

You might also like