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 SUBTutkin 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 dJokseenkin 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.