Tyhmät kysymykset (I/2011)
Re: Tyhmät kysymykset (I/2011)
Tarvitsen apua! En tajua kuinka animobjekti toimii ??
Re: Tyhmät kysymykset (I/2011)
Se toimii siten, että ensin lataat objektin, joka on animoitu (kuvatiedosto, jossa on monta kuvaa peräkkäin ja annat sitten funktion parametreinä yhden kuvan korkeuden ja leveyden) ja sitten toistat animaatiota.Laurenzo wrote:Tarvitsen apua! En tajua kuinka animobjekti toimii ??
Re: Tyhmät kysymykset (I/2011)
Kiitos!Chaosworm wrote:Se toimii siten, että ensin lataat objektin, joka on animoitu (kuvatiedosto, jossa on monta kuvaa peräkkäin ja annat sitten funktion parametreinä yhden kuvan korkeuden ja leveyden) ja sitten toistat animaatiota.Laurenzo wrote:Tarvitsen apua! En tajua kuinka animobjekti toimii ??
Aloittelija koodari joka
KOTISIVU
Re: Tyhmät kysymykset (I/2011)
vaan että tulee satunnaisesti
Aloittelija koodari joka
KOTISIVU
Re: Tyhmät kysymykset (I/2011)
No vaikka näin:Laurenzo wrote:kuinka onnistuu se että kun kiekko menee maaliin niin ei aina tule sama ääni:maaaaaaaliiiiiiiiiiiiiiii!!!!!!!!!!!!
vaan että tulee satunnaisesti
Code: Select all
If kiekkomaalissa then
ääni = Rand(2)
If ääni = 0 then
PlaySound aani1
ElseIf ääni = 1
PlaySound aani2
Else
PlaySound aani3
EndIf
EndIf
Re: Tyhmät kysymykset (I/2011)
Tuli sellainen jännä ongelma vastaan, että kun kutsun gosubilla aliohjelmaa, niin sain MAV:in. Makeerrorilla testasin, että ongelma ei varmasti tule ennen subin kutsumista. Mutta kun laitoin makeerrorin subin alkuun (ennenkuin siinä tehtiin mitään muuta) sain MAV:in. En ymmärrä missä meni vikaan :O...
Re: Tyhmät kysymykset (I/2011)
Laitas lähdekoodi mukaan kun kaikkilla ei ole kristallipalloa...Lazyanttu wrote:Tuli sellainen jännä ongelma vastaan, että kun kutsun gosubilla aliohjelmaa, niin sain MAV:in. Makeerrorilla testasin, että ongelma ei varmasti tule ennen subin kutsumista. Mutta kun laitoin makeerrorin subin alkuun (ennenkuin siinä tehtiin mitään muuta) sain MAV:in. En ymmärrä missä meni vikaan :O...
*Editoitu moka pois...*
Last edited by Peltsi on Mon Aug 08, 2011 4:04 pm, edited 1 time in total.
Re: Tyhmät kysymykset (I/2011)
Paitsi, että tuollaisen kirjoitusvirheen sattuessa jo compiler heittää erroria.Peltsi wrote:Laitas lähdekoodi mukaan kun kaikkilla ei ole kristallipalloa... Ja muuta en pysty ilman lähdekoodia sanomaan kuin että, oletko varma että kutsut oikean nimistä aliohjelmaa?Lazyanttu wrote:Tuli sellainen jännä ongelma vastaan, että kun kutsun gosubilla aliohjelmaa, niin sain MAV:in. Makeerrorilla testasin, että ongelma ei varmasti tule ennen subin kutsumista. Mutta kun laitoin makeerrorin subin alkuun (ennenkuin siinä tehtiin mitään muuta) sain MAV:in. En ymmärrä missä meni vikaan :O...Esim. tuossa on kirjoitusvirhe. Tarkastas ne.Code: Select all
GoSub peruna prenuna:
Re: Tyhmät kysymykset (I/2011)
Eiku nii, mikä lie aivopieru sattu... Mut Lazyanttu voi silti pistää sorsaa tuleenChaosworm wrote:Paitsi, että tuollaisen kirjoitusvirheen sattuessa jo compiler heittää erroria.Peltsi wrote:Laitas lähdekoodi mukaan kun kaikkilla ei ole kristallipalloa... Ja muuta en pysty ilman lähdekoodia sanomaan kuin että, oletko varma että kutsut oikean nimistä aliohjelmaa?Esim. tuossa on kirjoitusvirhe. Tarkastas ne.Code: Select all
GoSub peruna prenuna:
No voikohan tuo olla niitä CB:n ihmeellisyyksiä sitte?Lazyanttu wrote:Tuli sellainen jännä ongelma vastaan, että kun kutsun gosubilla aliohjelmaa, niin sain MAV:in. Makeerrorilla testasin, että ongelma ei varmasti tule ennen subin kutsumista. Mutta kun laitoin makeerrorin subin alkuun (ennenkuin siinä tehtiin mitään muuta) sain MAV:in. En ymmärrä missä meni vikaan :O...
Re: Tyhmät kysymykset (I/2011)
Voin kyllä laittaa lähdekoodin, mutta asiaa saattaa hankaloittaa seuraavat seikat:
1) Se on lähes 2500 rivinen
2) Ongelma tuli kun muutin kolmea asiaa joilla ei pitäisi olla mitään tekemistä kyseisen subin kanssa.
Kysyin lähinnä sitä varten jos tiedätte, että onko gosub:issa jokin bugi, sillä kun kutsun kyseistä subia, MAVi tulee ennenkuin kyseinen subi edes tekee mitään. Kyseinen bugi tuli kun lisäsin uuden yksikön peliin, mutta ei poistunut vaikka poistin kyseisen yksikön. Olisi pitänyt tehdä versioita useammin, viimeisin toimiva versio on pelin aivan alkupuolelta...
EDIT: 3) Koodaus/muuttujien nimeäminen/kommentointi vähän niin sun näin.
EDIT2: Kokeilin laittaa subin sisällön suoraan ohjelmaan ja sekin heitti MAV:ia.
Ja oudointa tuossa on se, että kyseinen kohta on toiminut tähän asti aina enkä ole sitä mennyt muuttamaan. "Remove"-osoitinta ei käytetä missään muualla, ATTACK on tyyppi eikä sitäkään käytetä missään väärin, sekä kaikissa attackeissa on varmasti objekti. Kaiken lisäksi MAV tulee ennen makeerroria seuraavassa tilanteessa:
Onko CB:ssä jotain rajoituksia (funktiorajan tiedän, se ei missään nimessä ole ylitetty) esim. "for"-looppien määrälle, muuttujien määrälle tms.? Näyttää siltä, että heti kun päästään for-läpikäyntiin niin tulee MAV vaikkei siellä mitään ehditä tekemäänkään.
EDIT3: (pahoittelen postin sekalaisuutta)
Nyt alkaa tosiaan tuntua siltä, että kaikki ei ole ihan kunnossa
Kyseinen jäi looppaamaan ikuisesti eikä 11 kertaa... Sijoitin sen kohtaan ennen kyseistä subia ja olen varma ettei se ole loopin sisällä...
1) Se on lähes 2500 rivinen
2) Ongelma tuli kun muutin kolmea asiaa joilla ei pitäisi olla mitään tekemistä kyseisen subin kanssa.
Kysyin lähinnä sitä varten jos tiedätte, että onko gosub:issa jokin bugi, sillä kun kutsun kyseistä subia, MAVi tulee ennenkuin kyseinen subi edes tekee mitään. Kyseinen bugi tuli kun lisäsin uuden yksikön peliin, mutta ei poistunut vaikka poistin kyseisen yksikön. Olisi pitänyt tehdä versioita useammin, viimeisin toimiva versio on pelin aivan alkupuolelta...
EDIT: 3) Koodaus/muuttujien nimeäminen/kommentointi vähän niin sun näin.
EDIT2: Kokeilin laittaa subin sisällön suoraan ohjelmaan ja sekin heitti MAV:ia.
Code: Select all
For remove.ATTACK = Each ATTACK
DeleteObject remove\obj
Delete remove
Next remove
Code: Select all
For remove.ATTACK = Each ATTACK
MakeError ""
DeleteObject remove\obj
Delete remove
Next remove
EDIT3: (pahoittelen postin sekalaisuutta)
Nyt alkaa tosiaan tuntua siltä, että kaikki ei ole ihan kunnossa
Code: Select all
For i = 0 To 10
AddText "toistun"
DrawScreen
Next i
Re: Tyhmät kysymykset (I/2011)
Onkos nyt varma ettei mikään virustorjuntaohjelmistosi ala tökkimään tai koneessasi ole jotain muuta pielessä? Eikä Windowsin DEP-toiminto (tietojen suorittamisen estämistoiminto) ole päällä kaikille ohjelmille? Ei kuulosta oikein normaalilta toiminnalta edes CB:lle.
Jos kaikki on mielestäsi oikein niin laita sitä lähdekoodia tulemaan vaikkapa zippinä, jos koet 2500:n rivin olevan liikaa pasteta suoraan foorumiviestiin.
Jos kaikki on mielestäsi oikein niin laita sitä lähdekoodia tulemaan vaikkapa zippinä, jos koet 2500:n rivin olevan liikaa pasteta suoraan foorumiviestiin.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Tyhmät kysymykset (I/2011)
Tarkistin DEP-toiminnot, sekä virustorjuntajärjestelmän, mutta ei toiminut. Tänä illalla pääsen kokeilemaan toisellakin koneella ohjelmaani, ja jos silläkin tökkii, niin sitten postaan koodini tänne muiden riesaksi . Mihinkään vastaavaan en ole aiemmin törmännyt, mutta se saattaa hyvinkin olla koneestaki kiinni. Tai sitten olen vain möhlännyt koodissa jotain todella pieleen.
Re: Tyhmät kysymykset (I/2011)
Samaan tapaan kuin ScaleImage korvaa cb:n ResizeImagen niin olisiko cb:n RotateImagelle mitään nopeampaa vaihtoehtoa?
Re: Tyhmät kysymykset (I/2011)
Ei tietääkseni.Kumiankka wrote:Samaan tapaan kuin ScaleImage korvaa cb:n ResizeImagen niin olisiko cb:n RotateImagelle mitään nopeampaa vaihtoehtoa?
Re: Tyhmät kysymykset (I/2011)
Tässä eräs keskeneräinen väkerrys... Se heittää jostain syystä "MakeImage failed", mutta en ymmärrä miksi...
Code: Select all
Dim OtusKuva(359, 100, 100)
PreRender()
WaitKey
Function PreRender()
//Lock
For rot = 0 To 7
For xs = 1 To 100
For ys = 1 To 100
h2# = xs / 2.0
v2# = ys / 2.0
xx1# = Cos(rot)*v2 //laatikon kulman x-suunnan x koordinaatti
xy1# = Cos(rot+90.0)*h2 //laatikon kulman y-suunnan x koordinaatti
yx1# = - Sin(rot)*v2 //laatikon kulman x-suunnan y koordinaatti
yy1# = - Sin(rot+90.0)*h2 //laatikon kulman y-suunnan y koordinaatti
x1 = _x + xx1 + xy1 //oikea yläkulma
y1 = _y + yx1 + yy1
x2 = _x - xx1 + xy1 //vasen yläkulma
y2 = _y - yx1 + yy1
x3 = _x - xx1 - xy1 //vasen alakulma
y3 = _y - yx1 - yy1
x4 = _x + xx1 - xy1 //oikea alakulma
y4 = _y + yx1 - yy1
xss = RoundUp(Distance(x2, 0, x4, 0))
yss = RoundUp(Distance(y2, 0, y4, 0))
OtusKuva(rot, xs, ys) = MakeImage(xss, yss)
DrawToImage OtusKuva(rot, xs, ys)
//trifiller(x1,y1,x2,y2,x3,y3)
//trifiller(x1,y1,x4,y4,x3,y3)
DrawToScreen
Next ys
Next xs
Next rot
//Unlock
End Function
Re: Tyhmät kysymykset (I/2011)
Muuttujat xss ja yss saavat arvoksi 0 tai vähemmän jossain vaiheessa.Kumiankka wrote:Tässä eräs keskeneräinen väkerrys... Se heittää jostain syystä "MakeImage failed", mutta en ymmärrä miksi...Code: Select all
Dim OtusKuva(359, 100, 100) PreRender() WaitKey Function PreRender() //Lock For rot = 0 To 7 For xs = 1 To 100 For ys = 1 To 100 h2# = xs / 2.0 v2# = ys / 2.0 xx1# = Cos(rot)*v2 //laatikon kulman x-suunnan x koordinaatti xy1# = Cos(rot+90.0)*h2 //laatikon kulman y-suunnan x koordinaatti yx1# = - Sin(rot)*v2 //laatikon kulman x-suunnan y koordinaatti yy1# = - Sin(rot+90.0)*h2 //laatikon kulman y-suunnan y koordinaatti x1 = _x + xx1 + xy1 //oikea yläkulma y1 = _y + yx1 + yy1 x2 = _x - xx1 + xy1 //vasen yläkulma y2 = _y - yx1 + yy1 x3 = _x - xx1 - xy1 //vasen alakulma y3 = _y - yx1 - yy1 x4 = _x + xx1 - xy1 //oikea alakulma y4 = _y + yx1 - yy1 xss = RoundUp(Distance(x2, 0, x4, 0)) yss = RoundUp(Distance(y2, 0, y4, 0)) OtusKuva(rot, xs, ys) = MakeImage(xss, yss) DrawToImage OtusKuva(rot, xs, ys) //trifiller(x1,y1,x2,y2,x3,y3) //trifiller(x1,y1,x4,y4,x3,y3) DrawToScreen Next ys Next xs Next rot //Unlock End Function
Roolipeliprojekti: Endless Travels
viewtopic.php?t=2548
viewtopic.php?t=2548
Re: Tyhmät kysymykset (I/2011)
Tervehdys!
Minulla olisi ongelma johon en löydä vastausta. Jos aseella ampuu liian nopeasti niin tulee MAV,
mutta jos ampuu hitaasti panos kerrallaan niin silloin ei tule.
Eli miksi näin tapahtuu?
Kiitoksia etukäteen.
Minulla olisi ongelma johon en löydä vastausta. Jos aseella ampuu liian nopeasti niin tulee MAV,
mutta jos ampuu hitaasti panos kerrallaan niin silloin ei tule.
Eli miksi näin tapahtuu?
Kiitoksia etukäteen.
Code: Select all
SCREEN 400,550
Type Enemys//tehdään tyyppi nimeltä enemys
Field obj
EndType
Type Player//tehdään tyyppi nimeltä player
Field hp%
Field score%
Field lifes%
Field speed%
Field obj
End Type
Type Bullets//tehdään tyyppi nimeltä bullets
Field obj
EndType
//luodaan pelaaja
pelaaja.Player = New(Player)
pelaaja\hp% = 100//määritellään statsit
pelaaja\score% = 0
pelaaja\lifes% = 5
pelaaja\speed% = 5
vihu = LoadObject("Media\vihu.bmp")//lataa vihu
human = LoadObject("Media\ship.bmp")//lataa pelaaja
panos = LoadObject("Media\bullet.bmp")//lataa panos
ShowObject vihu,OFF//piilota vihu
ShowObject panos,OFF//piilota panos
ShowObject human,OFF//piilota pelaaja
PositionObject human,0,-155//sijoita pelaaja
pelaaja\obj = CloneObject(human)
CloneObjectPosition pelaaja\obj,human
Repeat
//liikuta pelaajaa
If LeftKey() Then MoveObject pelaaja\obj,-pelaaja\speed
If RightKey() Then MoveObject pelaaja\obj,pelaaja\speed
//jos menee yli rajojen siirä takaisin rajojen sisälle
If ObjectX(pelaaja\obj)<-200 Then PositionObject pelaaja\obj,-195,-155
If ObjectX(pelaaja\obj)>200 Then PositionObject pelaaja\obj,195,-155
//kun LCTRL on pohjassa ammu
If KeyDown(cbKeyLCONTROL) And reload=0 Then
nBullet.Bullets = New(Bullets)
nBullet\obj = CloneObject(panos)
CloneObjectPosition nBullet\obj,pelaaja\obj
MoveObject nBullet\obj,0,-15
reload=10
EndIf
//liikutetaan luoteja
For iBullet.Bullets = Each Bullets
MoveObject iBullet\obj,0,-7
If ObjectY(iBullet\obj)>275 Then
DeleteObject iBullet\obj
Delete iBullet
EndIf
Next iBullet
If reload>0 Then reload=reload-1
//500 millisekunnin jälkeen vihu
If Timer()>rec+500 Then
blink = Not blink
rec = Timer()
EndIf
//luodaan vihuja
If blink And Ereload=0 Then
enm.Enemys = New(Enemys)
enm\obj = CloneObject(vihu)
PositionObject enm\obj,Rand(-178,178),280
Ereload =25
SetupCollision enm\obj,pelaaja\obj,2,2,1
EndIf
If Ereload> 0 Then Ereload=Ereload-1
//liikutetaan vhuja
For iEnm.Enemys = Each Enemys
MoveObject iEnm\obj,0,3
If ObjectY(iEnm\obj)<= -275 Then
DeleteObject iEnm\obj
Delete iEnm
EndIf
For Enm2.Enemys = Each Enemys
If ObjectsOverlap(pelaaja\obj,Enm2\obj,2) Then//jos pelaaja ja vihu törmäävät tuhotaan vihu
Delete Enm2
DeleteObject Enm2\obj
EndIf
For tBullet.Bullets = Each Bullets//jos luoti osuu vihuun tuhotaan vihu ja panos
If ObjectsOverlap(tBullet\obj,Enm2\obj,2) Then
Delete tBullet
Delete Enm2
DeleteObject tBullet\obj
DeleteObject Enm2\obj
EndIf
Next tBullet
Next Enm2
Next iEnm
DrawScreen
//luodaan hud
Color cbBlue
Box 5,500,390,45,ON
Color cbBlack
Box 8,508,60,20,ON
Color cbWhite
Text 10,510,"HP:"+pelaaja\hp
Text 100,510,"LIFES:"+pelaaja\lifes
Text 200,510,"SCORE:"+pelaaja\score
Forever
Re: Tyhmät kysymykset (I/2011)
En nyt koodia pahemmin katsonut mutta luulisin että yrität käyttää typeä, jota ei ole olemassa. Kun panokset loppuvat ja yritetään ampua niin mavaa. En ole varma, koska en tosiaan koodia tutkinut :/Offonn wrote:Tervehdys!
Minulla olisi ongelma johon en löydä vastausta. Jos aseella ampuu liian nopeasti niin tulee MAV,
mutta jos ampuu hitaasti panos kerrallaan niin silloin ei tule.
Eli miksi näin tapahtuu?
Kiitoksia etukäteen.Code: Select all
SCREEN 400,550 Type Enemys//tehdään tyyppi nimeltä enemys Field obj EndType Type Player//tehdään tyyppi nimeltä player Field hp% Field score% Field lifes% Field speed% Field obj End Type Type Bullets//tehdään tyyppi nimeltä bullets Field obj EndType //luodaan pelaaja pelaaja.Player = New(Player) pelaaja\hp% = 100//määritellään statsit pelaaja\score% = 0 pelaaja\lifes% = 5 pelaaja\speed% = 5 vihu = LoadObject("Media\vihu.bmp")//lataa vihu human = LoadObject("Media\ship.bmp")//lataa pelaaja panos = LoadObject("Media\bullet.bmp")//lataa panos ShowObject vihu,OFF//piilota vihu ShowObject panos,OFF//piilota panos ShowObject human,OFF//piilota pelaaja PositionObject human,0,-155//sijoita pelaaja pelaaja\obj = CloneObject(human) CloneObjectPosition pelaaja\obj,human Repeat //liikuta pelaajaa If LeftKey() Then MoveObject pelaaja\obj,-pelaaja\speed If RightKey() Then MoveObject pelaaja\obj,pelaaja\speed //jos menee yli rajojen siirä takaisin rajojen sisälle If ObjectX(pelaaja\obj)<-200 Then PositionObject pelaaja\obj,-195,-155 If ObjectX(pelaaja\obj)>200 Then PositionObject pelaaja\obj,195,-155 //kun LCTRL on pohjassa ammu If KeyDown(cbKeyLCONTROL) And reload=0 Then nBullet.Bullets = New(Bullets) nBullet\obj = CloneObject(panos) CloneObjectPosition nBullet\obj,pelaaja\obj MoveObject nBullet\obj,0,-15 reload=10 EndIf //liikutetaan luoteja For iBullet.Bullets = Each Bullets MoveObject iBullet\obj,0,-7 If ObjectY(iBullet\obj)>275 Then DeleteObject iBullet\obj Delete iBullet EndIf Next iBullet If reload>0 Then reload=reload-1 //500 millisekunnin jälkeen vihu If Timer()>rec+500 Then blink = Not blink rec = Timer() EndIf //luodaan vihuja If blink And Ereload=0 Then enm.Enemys = New(Enemys) enm\obj = CloneObject(vihu) PositionObject enm\obj,Rand(-178,178),280 Ereload =25 SetupCollision enm\obj,pelaaja\obj,2,2,1 EndIf If Ereload> 0 Then Ereload=Ereload-1 //liikutetaan vhuja For iEnm.Enemys = Each Enemys MoveObject iEnm\obj,0,3 If ObjectY(iEnm\obj)<= -275 Then DeleteObject iEnm\obj Delete iEnm EndIf For Enm2.Enemys = Each Enemys If ObjectsOverlap(pelaaja\obj,Enm2\obj,2) Then//jos pelaaja ja vihu törmäävät tuhotaan vihu Delete Enm2 DeleteObject Enm2\obj EndIf For tBullet.Bullets = Each Bullets//jos luoti osuu vihuun tuhotaan vihu ja panos If ObjectsOverlap(tBullet\obj,Enm2\obj,2) Then Delete tBullet Delete Enm2 DeleteObject tBullet\obj DeleteObject Enm2\obj EndIf Next tBullet Next Enm2 Next iEnm DrawScreen //luodaan hud Color cbBlue Box 5,500,390,45,ON Color cbBlack Box 8,508,60,20,ON Color cbWhite Text 10,510,"HP:"+pelaaja\hp Text 100,510,"LIFES:"+pelaaja\lifes Text 200,510,"SCORE:"+pelaaja\score Forever
Re: Tyhmät kysymykset (I/2011)
Ensiki, sinulla on kaksi enemy-silmukkaa sisäkkäin, ja tämä on ihan okei, jos joudut tekemään tarkastuksia vihollisten kesken. Mutta kaikki muu joka tehdään näissä silmukoissa suoritetaan liian monta kertaa, ja se vie konetehoja. Jos vihollisia on vaikka 10, ja luoteja on 5, niin luotien ja vastustajien välisiä törmäystarkistuksia on sillon 10 * 10 * 5, eli 500, kun selviäisit vain 10 * 5 = 50 tarkastuksella.
MAVhan tulee aina kun käytetään jotain mediaa jota ei ole olemassa. Tässä tapauksessa poistettua objektia:
Kysymäsi ongelma on samassa enemies-silmukassa. Ongelmasi johtuu siitä, että luodit-silmukka on enemies-silmukassa sisällä. Kun törmäys tapahtuu, sekä luoti että vihu poistetaan. Jos luoteja on enemmän kuin yksi, tarkastetaan törmäyksen jälkeen seuraava luoti _saman_ vihollisen kanssa. Vihollisen joka jo tuhottiin. Seuraa mav. Eli poista vihollinen luodit-silmukan ulkopuolella.
MAVhan tulee aina kun käytetään jotain mediaa jota ei ole olemassa. Tässä tapauksessa poistettua objektia:
Kysymäsi ongelma on samassa enemies-silmukassa. Ongelmasi johtuu siitä, että luodit-silmukka on enemies-silmukassa sisällä. Kun törmäys tapahtuu, sekä luoti että vihu poistetaan. Jos luoteja on enemmän kuin yksi, tarkastetaan törmäyksen jälkeen seuraava luoti _saman_ vihollisen kanssa. Vihollisen joka jo tuhottiin. Seuraa mav. Eli poista vihollinen luodit-silmukan ulkopuolella.
Re: Tyhmät kysymykset (I/2011)
Pystyyko Coolbasic rivittämään automaattisesti tekstiä? Siis esim. seuraavassa koodissa teksti menee reunoilta yli.
Code: Select all
'make window bigger as otherwise the text won't fit
SCREEN 580,420,16,cbwindowed
'open the file
f=OpenToRead("license.txt")
textline=0
'print the whole file to the screen
While Not EOF(f)
Text 0,textline,ReadLine(f)
textline=textline+12
Wend
'show the screen
DrawScreen
'don't forget this!
CloseFile f
WaitKey