Elikkä mulla on koodi :)
DECLARE SUB game () REM $INCLUDE: 'future.bi' Set640x480 8 SetFrameBuffer 2560, 960 Future.CLS 0 'dimmataan pari yleistä muuttujaa DIM SHARED kentta AS INTEGER kentta = 1 'main menu SetScroll 0, 0 Future.PRINT 250, 180, "Main menu", 15, 0 game 'loppu systeemi SLEEP ReSetScreen SUB game Future.CLS 0 'kentän latautuessa näytetään lataus tilanne Future.PRINT 0, 0, "Loading backgrounds...", 15, 0 'latauksen näyttöä DIM tausta(514) AS INTEGER Future.LoadBMP "Tj\taivas.bmp", 0, 480 Future.GET 0, 480, 32, 512, tausta() 'puttaillaan tausta FOR e = 1 TO 20 FOR d = 1 TO 15 PUT 640 + (32 * e), 32 * d, tausta NEXT d NEXT e Future.PRINT 220, 0, "OK", 15, 0 'piirrellään kenttä 'dimmataan ensin pari kriittistä muuttujaa DIM objecttexture(20, 15) AS STRING DIM objectaction(20, 15) AS INTEGER 'haetaan kentän tiedot tiedostosta OPEN "Tj\" + STR$(kentta) + ".lvl" FOR INPUT AS #1 FOR d = 1 TO 15 FOR C = 1 TO 20 INPUT #1, objecttexture(20, 15), objectaction(20, 15) NEXT C NEXT d SLEEP END SUB
Tutkin tossa SLEEP:in kanssa koodia ja havaitsin, että ongelma olisi tuon "'puttaillaan tausta" kohdan alapuolella.
Voisiko joku viisaampi valaista minua missä vika piilee kun ohjelma suorittaa laitonta toimintoa. Minulla ei ole siis sen kummempaa käsitystä kuin, että se on tuon köhdan alapuolella... jossain :)
Pitäisikö tuon PUTin olla Future.Put sillä eihän QB:n normaali PUT noin edes toimi. Ja tarkistiko ettei kuva mene yli reunojen.
Hmmm... tätä se teettää kun siirtyy käyttään jotain kirjastoa :) Ja nopealla päässälaskulla kuva ei mene yli reunojen. Kiitoksia kovasti!
edit: ainoa vaan, että se suorittaa vieläkin laitonta toimintoa. Siellä on siis vielänkin jotain vikaa :)
Siinä tuntuu olevan ainaki kolmella rivillä vikaa, että jos joku keksii ne niin...
No jaa... tosta edellisestä viestistä saatto saada sellasen käsityksen, että arvakkaapa mikä tossa koodissa mättää :) No, joka tapauksessa kun se suorittaa noita dim objecttexture(20,15) as string ja sitä alempaa niin tulee laiton toiminto. Kummallista... kuka tietää miksi?
Pitäisikö tuossa, kun luetaan tiedostosta, niin olla
input #1, objecttexture(c,d), objectaction(c, d) tuon (20, 15) sijasta? En näe koodissa $dynamic-määrittelyä, joten tuo viittaus (20,15) rikkoo taulukon rajoja (0..19, 0..14).
Kannattaa silloin ennemmin vetää tuo silmukka
FOR d = 0 TO 14 FOR C = 0 TO 19 INPUT #1, objecttexture(C, D), objectaction(C, D) NEXT C NEXT d
Jokseenkin noin.
Ei tuska... tää on jo noloo! Ihan perusvirheitä :) Laittaa nyt tällasta nettiin... Musta tuntuu ettei toi nyt kumminkaan ole se mikä suorittaa sitä laitonta toimintoa mutta en pääse testaan kun olen koulussa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.