Tuplamav! Wohoo!

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Tuplamav! Wohoo!

Post by -Z- »

Tämä koodi saa aikaan kummallisen tuplamavin, eli antaa kaksi memory acces violationia peräkkäin, ja tämän jälkeen vielä kysyy virheilmoituksen lähettämisestä. Kokeile ihmeessä, ja yritä samalla selvittää miten tuplamavin saisi poistettua.:

Code: Select all

Type AMMUS
    Field obj
End Type 

Type ENEMY
    Field obj
    Field health
End Type
    
FrameLimit 40

SCREEN 800, 600,0,1

DefaultVisible OFF
ukko=LoadObject("media\guy.bmp",72)
dirt=LoadImage("media\ground.png")
ground=MakeObjectFloor()
PaintObject ground, dirt
vihis=LoadObject("media\soldier.bmp",32)
pati=LoadObject("media\bullet.bmp")
cross=LoadImage("media\crosshair.bmp")
ShowMouse cross

lvl=1
ShowObject pati, OFF
ShowObject ukko, ON
paapeli:
Repeat

    If UpKey() Then MoveObject ukko,5
    If DownKey() Then MoveObject ukko,-5
    
    RotateObject ukko, GetAngle(ObjectX(ukko), -ObjectY(ukko), MouseWX(), -MouseWY())

    If KeyDown(cbKeyRControl) And reload=0 Then    
        luoti.AMMUS = New(AMMUS)
        luoti\obj=CloneObject(pati)
        ShowObject luoti\obj, ON
        CloneObjectPosition luoti\obj,ukko
        CloneObjectOrientation luoti\obj,ukko
        reload=5
    EndIf
    
    If reload>0 Then reload=reload-1

    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
        If ObjectX(luoti\obj)<-400 Or ObjectX(luoti\obj)>400 Or ObjectY(luoti\obj)<-300 Or ObjectY(luoti\obj)>300 Then
            DeleteObject luoti\obj
            Delete luoti
        EndIf        
    Next luoti 
    
    If vihuload=0 Then
        vihu.ENEMY = New(ENEMY)
        vihu\obj = CloneObject(vihis)
        ShowObject vihu\obj, ON
        vihu\health = 5
        RotateObject vihu\obj, Rand(0,3)*90
        MoveObject vihu\obj, 410
        vihuload=40-lvl
    EndIf
    
    If vihuload>0 Then vihuload=vihuload-1
    
    For vihu.ENEMY = Each ENEMY
        PointObject vihu\obj, ukko
        MoveObject vihu\obj, 3
        If vihu\health<1 Then
            DeleteObject vihu\obj
            Delete vihu
        EndIf
    Next vihu
    
    For vihu.ENEMY = Each ENEMY
        For luoti.AMMUS = Each AMMUS
            If ObjectsOverlap(vihu\obj,luoti\obj) Then
                vihu\health-1
                DeleteObject luoti\obj
                Delete luoti
                Exit
            EndIf
        Next luoti
    Next vihu
    
    DrawGame
    
    Text 0,0, lvl
    Text 0,10, vihuload
    
    DrawScreen

Until EscapeKey()
End
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
Rufi
Member
Posts: 50
Joined: Fri Dec 21, 2007 11:12 am

Re: Tuplamav! Wohoo!

Post by Rufi »

Miten MAV syntyy? Missä tilanteessa? Itse, kun koitin, en saanut minkäänlaista virheilmoitusta (no lukuunottamatta tietenkin tuota omaa kuvaasi) :?
I'm gonna be the Pira... CoolBasic King!
D. Adams wrote:The knack of flying is learning how to throw yourself at the ground and miss.
Aavesoturi
Active Member
Posts: 163
Joined: Fri Aug 31, 2007 7:07 pm
Location: Helsinki
Contact:

Re: Tuplamav! Wohoo!

Post by Aavesoturi »

Minä kun kokeilin niin sain kaksi mavia vielä kolmannen kaatumisilmoituksen (vaihdoin toki kuvan). Jostain syystä se katosi kun sattumalta laitoin kaksi ground = MakeObjectFloor() lausetta peräkkäin :shock:

Mutta ongelma näyttäisi olevan DefaulVisiblessä, sillä kun sen poisti, niin sitten pelitti. Ilmeisesti makeobjectfloor ei tykkää siitä.
EDIT: Toimii myös DefaultVisible Off:in kanssa jos komennat ShowObject ground, ON, varmaan haluat sen taustan näkymään ;)
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: Tuplamav! Wohoo!

Post by tuhoojabotti »

mulla toimi kun vaan vaihdoin ground.png->guy.bmp:hen :D
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tuplamav! Wohoo!

Post by Koodiapina »

Vedin ton tollasenaan ja tuli vaan yksi mavi.
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: Tuplamav! Wohoo!

Post by tuhoojabotti »

aika konekohtaisia noi coolbasicin virheet... :?
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
Aavesoturi
Active Member
Posts: 163
Joined: Fri Aug 31, 2007 7:07 pm
Location: Helsinki
Contact:

Re: Tuplamav! Wohoo!

Post by Aavesoturi »

Joo itseasiassa kun testailin ni mullakin toimi muilla, esim. particle.bmp:llä, paitsi ground.bmp tiedostolla (löytyy medioista). Ihme juttu.
mikeful
Moderator
Moderator
Posts: 523
Joined: Mon Aug 27, 2007 8:36 pm
Location: Vaasa, Finalnd
Contact:

Re: Tuplamav! Wohoo!

Post by mikeful »

Tässä lataat kuvan ja yrität maalata lattian sillä objektikomennon avulla.

Code: Select all

dirt=LoadImage("media\ground.png")
ground=MakeObjectFloor()
PaintObject ground, dirt
Muistaakseni tuohon komentoon oli joku kikka, jolla sillä sai piirrettyä kuviakin, mutta tämän pitäisi myös toimia.

Code: Select all

dirt=LoadObject("media\ground.png")
ground=MakeObjectFloor()
PaintObject ground, dirt
En ehtinyt katsoa koko koodia. Editoin tähän, jos huomaan vielä jotain.

EDIT: Muuten näyttääkin ihan toimivalta ja järkevältä.
Pelejä: Pelasta puhe, Grinder
Muuta: Blogi, Twitter
värikäs_guest

Re: Tuplamav! Wohoo!

Post by värikäs_guest »

tuhoojabotti wrote:mulla toimi kun vaan vaihdoin ground.png->guy.bmp:hen :D
mun piti muuttaa ground:i ja crosshair ni toimi ilman mitää mavia :D
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Tuplamav! Wohoo!

Post by -Z- »

Kun muutin loadimagen loadobjectiksi, tuli virheilmoitus paintobject failed.

wut?
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Tuplamav! Wohoo!

Post by -Z- »

Nyt on aivan pakko jakaa tämä kanssanne...

En saanut taustakuvaongelmaa ratkaistua, joten tein homman eri tavalla. Piirsin fotarilla komian 800x600 taustan, multaista maata jolla on ruohoa ja silleen, ja asetan sen piirrettäväksi ruudun vasempaan ylänurkkaan. Ajetaan ohjelma, ruutuun tärähtää jälleen mav + mav + error reporting. Alan kyrpiintyä, mutta ryhdyn kuitenkin etsimään ongelman syytä. Kokeilen vaihtaa tiedostonimen shooterbg.png -> guy.bmp ja Katso! Se toimii! Kokeilen jälleen shooterbg.png, ei toimi. Vaihdan kuvan tileset.bmp:ksi, ja edelleen antaa tuplamavin. Kokeilen vielä car.bmp:tä, ja toimii. Olen erittäin ymmälläni, mutta ylivertaisen huomikykyni ansiosta oivallan että sekä guyssä että carissa on vain kolme kirjainta O.o Nimeän siis taustakuvan bg.png:ksi, laitan sormet ristiin ja lyön f5:tä. Homma toimii, ja katselen ymmälläni, kuinka ruudun reunoilta viholliset vyöryvät sankarini kimppuun, joka seisoo multaisella maalla jolla on ruohoa ja silleen.

Onko tämä jokin sairas bugi?
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: Tuplamav! Wohoo!

Post by JATothrim »

Hmm...!!! 8-) Kun objekti maalataan kuvalla niin,

Paintobject obj, -kuva //!!!HUOMATKAA MIINUS MERKKI!!!!

Että sileen, Anteeksi jos menee ny huti kysymyksestä, en jaksanut nyt lukea kaikkia posteja.
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: Tuplamav! Wohoo!

Post by tuhoojabotti »

-Z- wrote:...Onko tämä jokin sairas bugi?
ongelmaa kutsutaan myös nimellä: Coolbasic :D
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Tuplamav! Wohoo!

Post by -Z- »

Dark Code wrote:Hmm...!!! 8-) Kun objekti maalataan kuvalla niin,

Paintobject obj, -kuva //!!!HUOMATKAA MIINUS MERKKI!!!!

Että sileen, Anteeksi jos menee ny huti kysymyksestä, en jaksanut nyt lukea kaikkia posteja.
Tuohon ei voi sanoa muuta kuin: Hups.
Koodaustauot vaativat aina veronsa, näemmä.

Mutta tuo kysymys ei ollut enää edes ajankohtainen, kiitos kuitenkin avusta.
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
vms100
Member
Posts: 81
Joined: Tue Aug 28, 2007 4:47 pm

Re: Tuplamav! Wohoo!

Post by vms100 »

O_o kolme mavia :D :D :D
Alligaattori
Active Member
Posts: 135
Joined: Fri Mar 07, 2008 8:49 pm

Re: Tuplamav! Wohoo!

Post by Alligaattori »

Minäpä sain kuusi mavia ja virheilmoituksen lähetysikkunan, kun tein työtä viimeisimpään viikkokisaan. :shock:
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tuplamav! Wohoo!

Post by Koodiapina »

Tein tästä tuplamavista oikein function :D En tiedä toimiiko teillä, itselläni toimii.

Virhe tulee tässä tapauksessa virheellisen rekursion takia.

Code: Select all

    DoubleMAV()
    
    Function DoubleMAV(b = 1,c = 1)
        DoubleMAV(b, DoubleMAV(b Or c))
    EndFunction
Post Reply