Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB, VB6: Koodi joka suorittaa laitonta toimintoa

Gaxx [16.02.2004 17:20:58]

#

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 :)

rndprogy [16.02.2004 18:03:18]

#

Pitäisikö tuon PUTin olla Future.Put sillä eihän QB:n normaali PUT noin edes toimi. Ja tarkistiko ettei kuva mene yli reunojen.

Gaxx [16.02.2004 18:12:20]

#

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 :)

Gaxx [16.02.2004 18:46:00]

#

Siinä tuntuu olevan ainaki kolmella rivillä vikaa, että jos joku keksii ne niin...

Gaxx [16.02.2004 22:47:44]

#

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?

sqwiik [17.02.2004 09:19:33]

#

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.

Gaxx [17.02.2004 09:57:48]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta