BootSector4 proudly presents: Basguru1.2 P„„timme jatkaa BasGuru-opastamme kehuista johtuen. Uudessa versiossa on mm. vieriv„ kartta tyyliin C&C, sprite-tekniikan esittely„, n„pp„inhandleri, MOD-formaatin esittely„, tuli, gouraud varjostettuja polygoneja, CD-soitin ym. Ihan pikku vinkkin„ peli„ tekeville: unohtakaa se PC-spiikkeri, se on aivan kammottava „„nil„hde! ;) Mukana tulee WAVin soitto ohjelma, ja vaikka se soittaa WAVeja aika huonosti eik„ „„ni ole sielt„ parhaasta p„„st„, niin aina se spiikkerin piipityksen voittaa. Xenon2:sta pelanneet tiet„nev„t ett„ spiikkerist„kin saa hie- non „„nen, mutta helpompi se on WAVina (voi laittaa mikill„ vaikka omaa puhetta ;>). Oletamme ett„ lukija osaa ohjelmoida QuickBasicill„ jo jonkin verran (kaikkia k„skyj„ ei selitet„). ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Mukana ovat seuraavat BAS-tiedostot: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ FLUSH.BAS -N„pp„imist”bufferin tyhjennys MOUSEINP.BAS -Hiiri! OPENCOM1.BAS -Modeemin terminaaliohjelma DEFSEG.BAS -Segmenttej„.... HANDLERI.BAS -N„pp„inhandleri... WAVPLAY.BAS -Soittaa WAVeja ja VOCeja AALTO.BAS -Aaltoilevaa teksti„ C&C.BAS -Sanooko nimi mit„„n... vaatii SVGAQB-alikirjaston CDPLAY.BAS -Soittaa CD-levyj„, vaatii QB4.5 EDIT.BAS -Ikonieditori, oma formaatti, vaatii ADVBAS-alikirjaston GFXPRINT.BAS -Tekstin tulostus grafiikkatilassa PRINT.BAS -Tekstin tulostus tekstitilassa (POKElla..) HUNTER.BAS -AlienPhobiaa parhaimmillaan, vaatii SVGAQB-alikirjaston MOD.BAS -Katsoo mit„ MOD-tiedosto sis„lt„„ NOBREAK.BAS -Ctrl-Break ja Ctrl-C ei toimi POLYGON.BAS -Gouraud-varjostettuja polygoneja PUT.BAS -Sprite-tekniikan esittely„ REBOOT.BAS -Buuttaa koneen SCROLL.BAS -Bittikartan py”ritys SOFTEN.BAS -Pehment„„ ruudun POKElla ja PEEKill„ TULI.BAS -Tuli ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ lis„ksi tulee my”s seuraavat tiedostot: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ BOOT.KUV -SCROLL.BAS-ohjelman bittikartta BOOT.PAL -SCROLL.BAS-ohjelman paletti TAUSTA16.PCX -C&C.BAS-ohjelman maasto UKOT2562.PCX -HUNTER.BASin ukot TULI*.ROM -PUT.BASin spritet ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Kannattaa kopioida QuickBasicille seuraavat alikirjastot: jos omistat QuickBasic4.5:n niin SVGAQB-kirjasto on ehdoton valinta; MBNetiss„ SVGAQB23.ZIP tai joku vastaava voit k„yd„ itse katsomassa QuickBasic-apajalla. jos omistat QB4.0:n niin kannattaa kokeilla ADVBAS-kirjastoa. MBNetiss„ ADVBAS40.ZIP ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Jos joku ei tied„ mik„ on alikirjasto ja mit„ sill„ tehd„„n niin t„ss„ on hieman haparoiva selitys: Kirjasto on jollain ohjelmointikielell„ (yleens„ ASM nopeuden maksimoimiseksi) tehty LIB tiedosto. Jos kirjasto on yh„ LIB-tiedosto se pit„„ linkitt„„ QLB:ksi k„skyll„ 'LINK /QU kirjasto.LIB,kirjasto.QLB,NUL,BQLB45.LIB'  k„ynnist„ QB k„skyll„ 'QB /L kirjasto.QLB' ³ jos k„yt„t QB4.5 (muissa tapauksissa aikaisempi versio esim. QB4.0 'BQLB40.LIB') Kirjaston mukana tulevissa README-tiedostoissa on yleens„ selitetty mukana tulevat k„skyt (kannattaa lukea huolella) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Jos k„yt„t QBasicia niin et voi kokeilla kaikkia ohjelmiamme, kannattaa hankkia QuickBasic4.5, jos jostain saa halvalla. (On se sen verran vanha ohjelma, ett„ ei kannata sit„ 1000- markkaa maksaa mit„ jotkut liikkeet pyyt„v„t) *<;=) Monta kertaa n„kee QuickBasicia mollattavan (ihan turhaan). QuickBasicill„ p„„sisi helposti C/Pascal tasoisiin ohjelmiin mutta kun DIMill„ tehtyjen taulukoiden koko on rajoitettu (Oma MODin soitto ohjelmamme kaatui juuri t„h„n kun sampleja ei saatu mahtumaan muistiin). Toinen kompastuskivi on hitaus (Command&Conguerinkin tekeminen onnistuisi mutta kun ohjelma on hidas kuin [sensuroitu] ja DIM taulukoiden m„„r„ on rajoi- tettu). Mutta miksi ihmeess„ EXEksi k„„nnetty ohjelma on melkein yht„ hidas kuin suoraan BAS-tiedostona ajettuna??? (eik” k„„nnetty ohjelma pit„isi olla nopeampi, mieleen tulee jos Micro$oft on laittanut pienet hidastukset EXEen tyyliin Windows95.. Micro- Softista ei koskaan tied„!) Jos joku osaa selitt„„ niin voisi kertoa minulle. Parhaiten ohjelmoimaan oppii vain esimerkkej„ seuraamalla; internetist„ kannattaa poimia esimerkkej„ (v„lill„ l”ytyy todella laadukkaita esimerkkej„ (kerran l”ysin MODEX.BAS, eli 320*240 tila QB4.*:een ilman mit„„n alikirjastoja, (toimii my”s QBasicilla) mutta emme laittaneet sit„ t„h„n Guruoppaaseen koska korkeampia resoluutioita kaipaavat kopioinevat SVGA-alikirjaston MB-Netist„.) Kannattaa kopata my”s PCGPE*.ZIP, se on oikea aarre ohjelmoi- jalle. (Siit„ olen my”s ottanut MOD.BASin tiedot) Siin„ on selitetty kaikki bittikartoista prosessorin keskeytyksiin; hyv„ englanninkielen taito eli olisi pahitteeksi; sanasto voi aiheuttaa ongelmia. Toivon/mme ett„ t„st„ Guruoppaasta olisi sinulle jotain apua peli„ tehdess„si. Muunmuassa MB-Netist„ l”ytyv„t BASIC-ohjelmat ovat liian usein alkeellisia. BasGuru oppaan yksi tarkoitus onkin nostaa suomalaisen BASIC-osaamisen tasoa. Seuraavassa hieman efektiesimerkkej„ selitetty juurta jaksaen. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ INP-portit: INP on k„tev„ k„sky koneen toimintoja tutkiessa. INP lukee portista. Esim. n„pp„imist” l”ytyy portista &H60. Koodaat sen ohjelmaan n„in: a=INP(&H60) <-a:n arvoksi tulee painettu n„pp„in muita portteja ovat esim: &H3F8 <- hiiren portti (jos hiiri on com ykk”sess„ &H3C8 <- grafiikka portti (v„ri), katso PLASMA.BAS &H3C9 <- grafiikka portti (v„riarvo) ÄÄÄÄŁ N„pp„imist”bufferin tyhjennnys: T„ss„ k„ytet„„n hyv„ksi n„pp„imist”puskurin ominaisuutta, eli rengasmaisuutta, laittamalla puskurin alku osoittamaan loppua, joka on (ainakin ohjeiden mukaan) "likainen temppu". Mutta tyhm„t kulkevat pidempi„ reittej„ ;) Kyseess„ on siis kaksi osoitinta, "alku" ja "loppu" ja jos molemmat osoittavat samaa, on puskuri tyhj„. Modeemiohjelma: Esimerkki tiedostossa OPENCOM1.BAS Luit aivan oikein... QuickBasicilla on mahdollista tehd„ modeemi- p„„teohjelma (ainakin sellainen mik„ ottaa dataa vastaan...). Avataan COM2: (jos modeemi toisessa commissa niin vaihda commia) OPEN "COM2:9600,N,8,1,ASC" FOR RANDOM AS #1 <ÄÄ avataan COM2, 9600bps, ei pariteettia, 8 databit- ti„, 1 stopbitti lukemista ja kirjoittamista varten Modeemin liikenn”intinopeus on maksimissaan 9600bps QBasicilla. Muita mahdollisia arvoja: 75, 110, 150, 300, 600, 1200, 2400 ja 4800 N tarkoittaa pariteettia: N(none) ei pariteetin tarkastusta E(even) parillinen pariteetti O(odd) pariton pariteetti S(space) pariteettibitti aina space = "0" M(mark) pariteettibitti aina mark = "1" PE salli virheentarkistus 8 tarkoittaa databitti„, eli l„hetett„vien merkkien lukum„„r„„: 5,6,7 tai 8 ovat mahdollisia arvoja 1 on stopbittien m„„r„, eli l„hetetyn merkin j„lkeen l„hetett„vien stopbittien m„„r„: 1,1.5 ja 2 ovat mahdollisia arvoja ASC tarkoittaa ett„ liikenn”id„„n ASCII-moodissa. Nuolin„pp„invalikko: Katso esimerkki„ tiedostossa VALIKKO.BAS Edes yksinkertainen valikko on l„hes pakko olla pelin alussa, nuolin„pp„imill„ tai hiirell„ toimivan teko onnistuu helposti. Nuolin„pp„imill„ toimiva tehd„„n n„in: tehd„„n valikko jossa on kolme kohtaa; tarvitset muuttujan esim. X aliohjelma joka tulostaa ruudulle valikon kolme mahdollisuutta X:st„ riippuen. Esim. Jos X=1 niin ykk”skohta korostetaan jos taas X=2 niin kakkoskohta jne... silmukan v„liin seuraavat: n„pp„inrutiini: jos painetaan yl”sp„in niin X=X-1 jos painetaan alasp„in niin X=X+1 jos painetaan enter niin ohjelma loppuu IF X=0 THEN X=1 <-- estet„„n X:„„ menem„st„ nollaan IF X=4 THEN X=3 <-- estet„„n X:„„ menem„st„ nelj„„n hyp„t„„n aliohjelmaan silmukan loppu N„pp„imist”puskuri toimintapeliin: Jos laittaa nopeatempoiseen peliin n„pp„imist”rutiiniksi INPn alkaa speakeri piippaamaan kun nappeja on paineltu v„h„n aikaa. Virhe korjaantuu jos laitat rivin 'X$=INKEY$' (tyhjent„„ n„pp„in puskurin) looppien v„liin. (Ei tehd„ sit„ joka silmukassa mutta esim. joka tuhannes kerta tai joka sadas). T„m„k„„n ei silti lue kuin yhden kerrallaan. N„pp„imist”handleri: On usein k„yt„nn”llist„ lukea useampia n„pp„imi„ yht„aikaa. Esim. toimintapeliss„ ammutaan, liikutan eteenp„in ja k„„nnyt„„n oikealle samaanaikaan. N„ppishandlerin (handleri.bas) idea on siin„, ett„ n„pp„imist” l„hett„„ tietoa, kun n„pp„int„ painetaan tai otetaan pois. Kun n„pp„int„ painetaan l„hetet„„n takaisin numero v„lilt„ 1-127. Kun otetaan n„pp„in pois pohjasta tulee tuo sama 1-127 numero + 128. Jo tuon tiedon avulla jokaisen pit„isi osata tehd„ oma n„ppishandleri=). No, selitet„„np„ silti. Eli luodaan taulukko 1-127. Luetaan &H60 portista, ja mik„li luku < 128 sijoitetaan taulukon siihen kohtaan, mik„ luku tuli, arvo 1. Kun luku > 128 v„hennet„„n luvusta 128, ja taulukkoon sijoitetaan erotuksen kohdalle arvo 0. Sitten katsotaan onko taulukon jokin tietty kohta 1, ja kun on, t„m„ n„pp„in on pohjassa. N„pp„imist”n l„hett„m„t arvot/n„pp„in saa selville k„ytt„m„ll„ INP(&H60):nt„ ja printtaamalla luvun. Helppoa, eik” totta? Tekstin selaus: Esimerkki tiedostossa TEXT.BAS Tekstin selausohjelma (EDIT-tyylinen) on ihan helppo tehd„; avaat vain valmiin tekstitiedoston ja tallennat sen rivi ri- vilt„ taulukkoon. DIM TAULUKKO$(1000) <- jos on isompi tekstitiedosto niin kasvata OPEN "LUEMUT.TXT" FOR INPUT AS #1 <-avataan tiedosto vain lukemiseen Y=0 DO UNTIL EOF(1) <ÄÄÄ tehd„„n looppia kunnes tiedosto #1 loppuu LINE INPUT #1, MERKKIJONO$ <ÄÄ luetaan tiedostosta rivi TAULUKKO$(Y)=MERKKIJONO$ <ÄÄ tallennetaan taulukkoon merkkijono Y=Y+1 LOOP CLOSE <- suljetaan tiedosto(t) T„m„n j„lkeen ohjelma hypp„„ aliohjelmaan joka tulostaa TAULUKKO$- taulukon 20 ensimm„ist„ rivi„ ruudulle ja palaa takaisin. T„h„n kohtaan laitat n„pp„imist”rutiinin (INKEY$ riitt„„ ohjelman 'hitaan temmon' vuoksi (r„iskint„peleiss„ n„pp„inrutiinina INP) : DO t„h„n kohtaan Jos painetaan yl”sp„in niin muuttujan X arvo laskee Jos painetaan alasp„in niin muuttujan X arvo nousee ESCist„ loppuu T„ss„ kohdassa hyppy aliohjelmaan joka tulostaa ruudulle TAULUKKO$- taulukon kohdan X ja 20 seuraavaa rivi„. LOOP (silmukan loppu) GET-kuvat n„yt”lle: Jos olet oikein virtuoosi voit yritt„„ seuraavaa: Osaat varmaan k„ytt„„ GETi„ ja PUTia (grafiikan piirt„miseen) joten ymm„rr„t periaatteen (emme selittele enemp„„ t„ss„). Kun k„yt„t PUTia grafiikan piirt„miseen joudut aluksi otta- maan kuvan GETill„ muistiin. Tee niin ett„ otat GETill„ kuvan taulukkoon, avaa tiedosto ja kirjoita sinne kaikki taulukossa olevat luvut. Seuraavaksi et en„„ tarvitse GETi„ ohjelman suoritukseen; Tee samankokoinen taulukko kuin GETi„ k„ytt„ess„si, avaa tiedosto INPUTilla ja lue taulukkoon tie- dostossa olevat luvut. Sinun ei tarvitse piirt„„ kuvaa saa- daksesi sen muistiin ;], voit nyt siirt„„ kuvan ruudulle PUTilla. Plasma: Katso tiedosto PLASMA.BAS Plasma on sekalainen v„rirykelm„ ruudulla jonka palettia py”ritet„„n DOn ja LOOPin v„liss„. Voit unohtaa PALETTE- k„skyn (hidas kuin mik„) ja ottaa tilalle OUTin. Paletin voi muuttaa OUTilla seuraavasti: (SCREEN 13) Voit py”ritt„„ seuraavia OUTteja silmukassa ja muuttaa muuttu- jien arvoa vapaasti. OUT &H3C8, X <-v„ri mit„ muutetaan OUT &H3C9, Y <-v„rin punaisuus-arvo (0-63) OUT &H3C9, Z <-v„rin viher-arvo (0-63) OUT &H3C9, C <-v„rin sinisyys-arvo (0-63) Jos olet piirt„nyt ennen OUTteja ruudulle kuvan niin sen v„rit pit„isi nyt muuttua. Miten saada kone buuttaamaan: Katso REBOOT.BAS Jos olet DOSissa niin k„sky 'OUT &H64, &HFE' buuttaa koneen, win- dows ikkunassa se vain palaa windowsiin. Aikaisemmassa Guruoppaassa ollut k„sky 'OUT 8,8' sulkee windowsissa ohjelman ajon mutta DOSissa ei tee mit„„n ;). Tekstin tulostus teksti- ja grafiikkatilassa: Tapahtuu kirjoittamalla muistiin. Selke„t esimerkit ovat tiedostoissa PRINT.BAS ja GFXPRINT.BAS. Pehmennys: Esimerkki tiedostossa SOFTEN.BAS Pehmennys eli soften tai smooth on aivan yksinkertainen. Se perustuu siihen ett„ kuvapisteen ja sit„ ymp„r”ivien pisteiden arvot lasketaan yhteen ja jaetaan yhdeks„ll„. Pehmennys toimii parhaiten jos teet paletin mink„ toinen „„rip„„ on esim. musta ja toinen valkoinen (v„rit feidau- tuvat). Jos et muuta palettia ja yrit„t pehment„„ ruudun, v„rit menev„t helposti sekaisin. Hyv„ paletti l”ytyy tiedostosta TULI.BAS (Tehty OUTilla). SCREEN 13 DEF SEG = &HA000 Silmukka mik„ menee nollasta 199:n FOR Y=0 TO 199 Silmukka mik„ menee nollasta 319:n FOR X=0 TO 319 Sitten lasket pisteen (X,Y) ja sit„ ymp„r”iv„t v„riarvot yhteen (yhteens„ yhdeks„n pikseli„), jaat tuloksen 9:ll„ ja py”ris- t„t sen CINTill„ tai INTill„ (huomaa ett„ ruudun reunan ulko- puolelta ei laskeminen onnistu). Tallenna pisteiden n„in saatu keskiarvo muuttujaan VARI ja piirr„ piste ruudulle koordinaatteihin (X,Y) Piirret„„n piste ruudulle POKEa k„ytt„en POKE Y*320+X,VˇRI Silmukoiden loppu: NEXT X NEXT Y Miten saada scrollaava kartta tyylin Command&Conguer? 1. Jos et omista QuickBasic4.5:sta voit unohtaa asian... 2. Soita MB-Nettiin 3. KOPIOI SVGAQB23.ZIP 4. Pura se 5. kirjoita komentorivill„ (eth„n vaan k„ynnist„ windozesta) QB /L SVGAQB 6. Avaa C&C.BAS 7. Paina Shift+F5 Esimerkki on tiedostossa C&C.BAS Vieriv„n kartan tekeminen onnistuu helposti edell„mainitun alikirjaston kautta. Tarvitsee vain olla PCX-kuva, mielui- ten kokoa 640*480, 256 v„ri„ (voi olla isompikin karttakuva mutta vieritys silloin paljon hitaampaa). T„m„n Guruoppaan mukana tuleva TAUSTA16.PCX on mainio taustakuva (Piirretty PaintShopProlla). Svga-kirjastossa on k„sky PCXPUT (periaate sama kuin BLOAD, mutta paljon parempi; kuvaa voi my”s vieritt„„ Y-akselin suuntaisesti eik„ kuvan tarvitse olla kokonaan ruudulla). K„yt„mme resoluutiota 320*200 koska se piirt„„ kuvan no- peimmin. Kuvan piirto tapahtuu k„skyll„: OK = PCXPUT(1, X, Y, "TAUSTA16.PCX")  ³ X:n ja Y:n tilalle voi laittaa mitk„ luvut tahtoo :) X:s„„ ja Y:t„ muuttelemalla kuva "scrollaa" hienosti ruu- dulla. T„h„n p„„lle voisi rakentaa vaikka reaaliaikaisen toimintapelin (ihan mahdollinen QuickBasicilla), mutta jos ukkoja olisi ruudulla v„h„nkin enemm„n niin vieritys tulisi niin hitaaksi ett„ ei sit„ kukaan pelaisi. BLOAD ja BSAVE Esimerkki tiedostossa SCROLL.BAS. BLOAD toimii n„in: BLOAD "KUVA.KUV", X <ÄÄÄÄÄ- X:n tilalle 0-57665 Bload piirt„„ aikaisemmin talletetun bittikartan ruudulle. Vinkki: FOR X=0 to 319 <ÄÄÄÄÄÄ Py”ritt„„ kuvaa vasemmalta BLOAD "KUVA.KUV",X oikealle ruudulla NEXT X BSAVE toimii n„in: BSAVE "KUVA.KUV", 0, 64000 <ÄÄÄÄÄ viimeiseen pisteeseen   (oikea alanurkka, 320*200) ³ ĄÄæ Tallettaa ensimm„isest„ tiedostoon pisteest„ (vasen "KUVA.KUV" yl„nurkka) POKE, ei PSET: Katso esimerkki„ tiedostossa SOFTEN.BAS. Kannattaa k„ytt„„ POKE-k„sky„ PSETin sijaan. Se on nopeampi kuin PSET. Eroa ei oikein Pentill„ huomaa, mutta jos vaikka piirt„„ ruudun t„yteen pisteit„ 386:lla tai hitaammalla 486:lla niin POKE on selv„sti nopeampi. POKE toimii parhaiten 320*200-tilassa, eli SCREEN 13. POKE toimii n„in: SCREEN 13 DEF SEG = &HA000 <-grafiikkamuistin alku, POKE ei toimi ilman t„t„ k„sky„. X:n arvo v„ri ĄÄÄæ ³   POKE 100*320+160, 15 <-piirt„„ ruudun keskelle valkoisen pisteen  koordinaatteihin (160,100). Sama hoituu ³ my”s k„skyll„ PSET(160,100),15. Y:n arvo PEEK toimii t„ysin samalla tavalla, eli POINTin sijaan kannattaa k„ytt„„ PEEKi„ koska se on nopeampi kuin POINT. Eli, kerrotaan Y:n arvo 320:lla ja lis„t„„n siihen X:n arvo. (Vaatii my”s DEF SEG = &HA000 laittamista alkuun) PRINT PEEK(100*320+160) <- tulostaa ruudulle pisteen (160,100) v„riarvon. Sama hoituu my”s k„skyll„ PRINT POINT(160,100). T„ss„ tapauk- sessa arvo on 0, jos ruudulle ei ole piirretty mit„„n. Sprite-tekniikka: Mik„ ihmeen sprite? - Sprite on sarja kuvia jotka n„ytet„„n ruudulla per„kk„in samassa kohdassa jolloin se n„ytt„„ aivan animaatiolta. Valmis esimerkki ohjelma on tiedostossa PUT.BAS. T„ss„ tapa miten voit piirt„„ vaikka pienen ukon k„velem„„n ruudulla. Olemme itse opetelleet sen (ei mist„„n kirjasta), mutta se on ihan hyv„. N„it„ tarvitset: SCREEN 13 <- ruutu grafiikkatilaan (ei ole pakko olla juuri t„ss„ grafiikkatilassa) DEF SEG = &HA000 <- grafiikkamuistin alku (ei ole pakko laittaa jos piirt„„ teksti- tilassa, tai ei k„yt„ POKEa) Spriten X-koordinaatti, merkit„„n sit„ vaikka X:ll„ Spriten Y-koordinaatti, merkit„„n vastaavasti Y:ll„ Arvo joka kertoo mit„ animaation kuvaa piirret„„n X=160 <- Annetaan X:n arvoksi vertikaalinen keskipiste Y=100 <- Annetaan Y:n arvoksi horisonttaalinen keskipiste Z=1 <- Aloitetaan ykk”skuvasta Taulukko johon tallennetaan tausta, kutsutaan sit„ vaikka TAULUKOKSI. DIM Taulukko&(200) <- Sulkuihin sit„ isompi arvo mit„ isompaa sprite„ piirr„t. Ohjelma palauttaa vir- heen Illegal Function Call, jos arvo on liian pieni. Taulukko johon sprite-kuvat tallennetaan, kutsumme sit„ nimell„ KUVAT. kakkosen tilalle niin iso luku kuin animaatiossa kuvia, huomaa nolla mukana. ³ DIM Kuvat(14,14,2) <- Animaatio tallennetaan t„h„n taulukkoon. Huomaa ett„ ensimm„inen kuva tallentuu taulukkoon Kuvat(X,Y,0), seuraava tauluk- koon Kuvat(X,Y,1) jne... T„ss„ esimerkiss„ k„yt„mme 15*15 kokoista animaatiota kol- mella kuvalla. Seuraavaksi t„ytyy tallettaa animaation kuvat taulukkoon Kuvat. Eli avaamme OPEN-k„skyll„ kuvatiedostot ja tallennamme siell„ olevan kuvan taulukkoon. Sitten otamme taustan muistiin: GET (X,Y)-(X+14,Y+14),Taulukko& DO <- silmukan alku IF INP(&H60)=1 THEN END <- ESCist„ loppuu T„h„n v„liin joku pieni tauko, esim SOUND 0,1 Piirret„„n tausta, eli sprite katoaa ruudulta: PUT (X,Y),Taulukko&,PSET Jos haluaa animaation liikkuvan vaikka oikealta vasemmalle niin t„h„n kohtaan laitetaan X:lle "kasvuarvo": X=X+1 Tausta muistiin: GET (X,Y)-(X+14,Y+14),Taulukko& Seuraavaksi piirret„„n animaatio: (Huomaa ett„ v„rist„ 0 tehd„„n l„pin„kyv„ ja sit„ ei piirret„) FOR A=0 TO 14 POKE on nopeampi kuin PSET FOR I=0 TO 14 ³ IF Kuvat(I,A,Z-1)<>0 THEN POKE (A+Y)*320+I+X,Kuvat(I,A,Z-1) NEXT I NEXT A Z=Z+B IF Z=4 THEN Z=2:B=-1 IF Z=0 THEN Z=2:B=1 LOOP <- silmukan loppu BootSector4:n aikaisempia pelej„ ja ohjelmia: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ FutureWindows -mahtava k„yttis -parempi kuin Micro(BEEP):n vastaava onneton kyh„elm„ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ MoloPokeri -hieno nelj„n kortin pokeri -p„„see helposti tuplaamaan ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Wien96 -mahtava j„„kiekkopeli -todella tunnelmallinen ja todentuntuinen ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ™RKS -eritt„in todentuntuinen WORMS-tyylinen r„iskint„ -parempi kuin WORMS(2) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ WarFare (demo) -C&C-tyylinen vieriv„ kartta -CIV-tyyppiset ukot -mahtava toisen maailmansodan uudelleenpeluumahdollisuus -MB-Netiss„ WARFARE.ZIP (450kt) -ihailijan kommentti s„hk”postilla : "Maasto on todella *karua*, kielioppivirheit„ vilisee joka paikassa, ja hiiri katoaa v„- lill„ ruudulta, oisitte laittanut jonkun osaavan asialle eik„ mit„„n naapurin Eskoa" („skeinen repliikki oli p„tkitty alkuper„isest„) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ BootPaint -hieno piirtoohjelma -MB-Netin Basic-hakemiston eniten kopioitu tiedosto viikkoja!!! -MB-Netiss„ BPAINT.ZIP -kaverin kommentti: "Onks t„„ tosiaan teid„n tekem„??" ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ GuruOpas -paras opas aloittelijoille -MB-Netiss„ BASGURU.ZIP ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ RomConstructionKit -BootSector4:n oman ROM-kuvakkeen tekoohjelma -t„m„n avulla voit muuttaa kuvakkeita aikaisempiin ohjelmiimme... ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ NegroHunter -Daleksin kaataja -Kehuttu InterNetiss„ -Ei p„„stetty MB-Nettiin (josta olemme hyvin katkeria) 'ideologiansa' vuoksi, -vaikka peli ei ole mitenk„„n rasistinen (nimest„ voi toisin p„„tell„, MUTTA -NegroHunter voi my”s tarkoittaa neek...H™M tummaihoista joka mets„st„„, siis -ei mit„„n rasismiin liittyv„„!!!!!) -kommentti Netiss„: "Aluks m„ en oikein tajunnut mit„ siin„ piti tehd„, mutta kun se valkeni m„ melkein j„in koukkuun siihen!!" (Ihan totta noi kommentit) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 2.2 Tulossa tai ehk„ tulevia: (ei mit„„n takeita tuleeko koskaan) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ CaveFly -luolalentelyn tulevaa k„rke„ <- HYLLYTETTY ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ WarFare -640*480-engine on jo melkein valmis... ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Wellu -Larry kaapattiin Suomeen ja t„m„ on tulos... <- HYLLYTETTY ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ BootPaint2 -Piirto-ohjelmien kuningas uusiutuu.... -FLI, BMP, PCX, GIF, BOO, ROM, BLD- formaatit ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 3.0 Kiitokset Kiit„mme Zephyr Softwarea aivan mahtavasta SVGA-kirjastosta sek„ Jussi Josefssonia PascalinopetusFAQista, ja sen kautta bufferin tyhjennyksest„ 3.1 Kunniotamme seuraavia henkil”it„, asioita ja yhti”it„: (emme kunniota: Micro$oft Corporation) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Yngwie J. Malmsteen -H„nen musiikin soidessa olemme saaneet mahtavat ideamme! -Kuuntelemme melkein aina Ynkk„„ kun ohjelmoimme... ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Jupi Tervo -Ensimm„inen, joka koskaan on pelannut Warfaren l„pi. VAPAAEHTOISESTI!! ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ¸keSoft -Invataxi... ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Yhteystiedot ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ L„het„ kommentteja seuraaville henkil”ille: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Niko Nyqvist niko.nyqvist@mbnet.fi ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Iikku Mattila iikkuma@netti.fi ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ