Muisti ongelma

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
Rangegan
Newcomer
Posts: 1
Joined: Mon Mar 28, 2011 8:28 am

Muisti ongelma

Post by Rangegan »

Moro. OOn koittanu alottaa ton mun työn ja sit venaan vähä aikaa ja sit siihe tulee "*Memory accses violation" En tajuu mix ku koodit on oikein. Helppii jos voi :D
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Muisti ongelma

Post by naputtelija »

mav ongelmat aina tyhmiin kysymyksiin.
ilman koodia emme voi tehdä mitään.
Mav aiheutuu usein siitä, että yrität käyttää tuhottua objektia tai viittaat lataamattomaan objektiin.
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Muisti ongelma

Post by Awaclus »

viewtopic.php?f=10&t=1920 -> kolmas kohta.

EDIT: :mrgreen: :mrgreen: sarnath'd axu-nyan
Last edited by Awaclus on Mon Mar 28, 2011 9:37 am, edited 1 time in total.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Muisti ongelma

Post by axu »

Jos näyttäisit koodisi, voisi paremmin olla avuksi. Lue ensin ainakin kolmoskohta usein kysytyistä kysymyksistä.
Voit myös koittaa paikantaa bugikohtaa lisäämällä SetWindow- tai Print-käskyjä sinne tänne koodia, esim.

Code: Select all

Type BULLETS
    Field obj
End Type

'- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
'MAIN PROGRAM 
'- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

FrameLimit 40

'load the soldier, turning detail 72 
guy=LoadObject("Media\soldier.bmp",72)

'load the bullet (master-object) and hide it 
bullet=LoadObject("Media\bullet.bmp")
ShowObject bullet,OFF

ClsColor cbdark

AddText "Arrows to turn, SPACE to shoot"
SetWindow "Rivi: 21"
'MAIN LOOP 
Repeat

    'Update turning
    If LeftKey() Then TurnObject guy,5
    If RightKey() Then TurnObject guy, -5
SetWindow "Rivi: 28"
    
    'Shoot?
    If KeyDown(cbkeyspace) And reload=0
    
        newBullet.BULLETS= New(BULLETS)
        newBullet\obj=CloneObject(bullet)
        CloneObjectPosition newBullet\obj,guy
        CloneObjectOrientation newBullet\obj,guy
        'put the bullet at the end of the barrel
        MoveObject newBullet\obj,24 
    
        reload=4
SetWindow "Rivi: 41"
    EndIf
    
    'Update all BULLETS (move them forward)
    i=0
    For iBullet.BULLETS= Each BULLETS
        'delete bullet from collection if it
        'gets too far away
SetWindow "Rivi: 49"
        If Distance2(iBullet\obj,guy)>200 Then 
            DeleteObject iBullet\obj
            Delete iBullet
        EndIf
        
SetWindow "Rivi: 55"
        MoveObject iBullet\obj,6 'speed=6   TÄSSÄ PITÄISI KAATUA, JA IKKUNAN OTSIKOKSI JÄÄDÄ RIVI 55, KOSKA YRITETÄÄN KÄYTTÄÄ TUHOTTUA OBJEKTIA
        
        i=i+1
        
    Next iBullet
    
SetWindow "Rivi: 62"
    'Update reloading
    If reload>0 Then reload=reload-1
    
    Text 30,30,"Bullets to update: "+i
    
    'Don't forget this :)
    DrawScreen

SetWindow "Rivi: 71"
Until EscapeKey()
Koodi on muokattu Cloneobjects-käskyn esimerkistä, ja se kaatuu kun ammus menee ikkunan ulkopuolelle. Virheilmoituksen tullessa ikkunan otsikoksi jää "Rivi 55", jonka avulla tietää, että vika on rivien 55 ja 62 välillä.
EDIT:

Jaaha, mato ehtikin ensin :D
Niin ja tälläiset kysymykset yleensä sopii paremmin Tyhmiin kysymyksiin.

Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Post Reply