Pikselintarkka ObjectsOverlap ja MAV

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
Drath
Newcomer
Posts: 40
Joined: Mon Aug 27, 2007 8:32 pm

Pikselintarkka ObjectsOverlap ja MAV

Post by Drath »

Huomasin että itselläni cb-ohjelmat kaatuilevat satunnaisesti maviin kun käytää objectsoverlappia ja sen kanssa pikselintarkkaa tarkistusta. Seuraava koodi on suoraan CB:n manuaalista joten minussa ei mitään vikaa pitäisi olla :).

Code: Select all

FrameLimit 40
ShowMouse OFF
DrawToWorld ON

soldier=LoadObject("Media\soldier.bmp",360)
ObjectRange soldier,46

target=LoadObject("Media\crosshair.bmp")

'some text 
Color cbblack
AddText "1 = Box-based"
AddText "2 = Circle-based"
AddText "3 = Pixel-based"

'default 
method=1

ClsColor cbwhite

Repeat

    'Change mode
    If KeyHit(cbkey1) Then method=1
    If KeyHit(cbkey2) Then method=2
    If KeyHit(cbkey3) Then method=3

    TurnObject soldier,1
    Select method
        Case 1 'box
            Box ObjectX(target) -8,ObjectY(target)+8,16,16,OFF
            Box ObjectX(soldier) -23,ObjectY(soldier)+23,46,46,OFF
            Text 100,250,"Overlap (box): "+ObjectsOverlap(soldier,target,1)
        Case 2 'circle
            Circle ObjectX(target) -8,ObjectY(target)+8,16,OFF
            Circle ObjectX(soldier) -23,ObjectY(soldier)+23,46,OFF
            Text 100,250,"Overlap (circle): "+ObjectsOverlap(soldier,target,2)
        Case 3 'pixel
            Text 100,250,"Overlap (pixel): "+ObjectsOverlap(soldier,target,3)
    End Select
    
    PositionObject target,MouseX() -200, -MouseY()+150

    DrawScreen

Until EscapeKey()
Tuo koodi kaatuu kun painaa kolmosta ja sitten laittaa tähtäimen sotilaan päälle. Se ei kuitenkaan aina kaadu heti vaan saattaa toimia hetken kunnes kaatuu. Onko kellään muulla samanlaisia ongelmia?
CoolBasic henkilökuntaa
Sisältövastaava
Skapth
Newcomer
Posts: 8
Joined: Sun Aug 26, 2007 2:50 pm
Location: Joensuu, Finland

Re: Pikselintarkka ObjectsOverlap ja MAV

Post by Skapth »

Samalla tavalla kävi minullakin. Memory access violation ei tullut aivan heti vaan parin sekunnin jälkeen hiiren laittamisesta sotilaan päälle.
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Pikselintarkka ObjectsOverlap ja MAV

Post by Jonez »

Sama.

Ongelma korjaantuu ainakin mulla, kun säätää sen pyöritysarvon esim. 72:een.
Outo bugi. Ei kyllä hajuakaan että mistä voisi johtua.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Drath
Newcomer
Posts: 40
Joined: Mon Aug 27, 2007 8:32 pm

Re: Pikselintarkka ObjectsOverlap ja MAV

Post by Drath »

No, onpahan tässäkin nyt sitten yksi uusi juttu mitä kannattaa tarkistaa kun metsästää pelissään maveja.
CoolBasic henkilökuntaa
Sisältövastaava
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Pikselintarkka ObjectsOverlap ja MAV

Post by koodaaja »

Itselläni tuo toimi moitteetta. Lienee konekohtainen ongelma.. Kokeikaapa te, joilla pukittaa, tuleeko moista käännettyyn .EXE:en?
KilledWhale
Tech Developer
Tech Developer
Posts: 545
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: Pikselintarkka ObjectsOverlap ja MAV

Post by KilledWhale »

Minullakaan ei tullut minkäänlaista virhettä, vaikka jätin hiiren objektin päälle pariksi minuutiksi.
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras
mza
Newcomer
Posts: 20
Joined: Mon Aug 27, 2007 11:34 pm

Re: Pikselintarkka ObjectsOverlap ja MAV

Post by mza »

Joskus aikaisemmin jo huomasin, että cb:ssä näitä konekohtaisia maveja on. Nyt kun Zerokin on paikalla, niin on toivoa jopa ratkaisusta. :D Tässä mavittava koodi lyhyempänä:

Code: Select all

soldier=LoadObject("Media\soldier.bmp",360)
target=LoadObject("Media\crosshair.bmp")

Repeat
    TurnObject soldier,1
    a=ObjectsOverlap(soldier,target,3)
    DrawScreen
Forever
Mavittaa ainakin pyöritysarvoilla 90,179,180,220,360, mutta ei 72. Mav tulee myös, jos muutan objektien nimet. Mav ei tule, jos sotilasta ei pyöritetä tai törmäystä ei tarkisteta. Sama vika myös exe:ssä. Kone on uudehko ja käyttis Win XP, että ei siitäkään pitäisi kai johtua.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Pikselintarkka ObjectsOverlap ja MAV

Post by koodaaja »

mza wrote:Joskus aikaisemmin jo huomasin, että cb:ssä näitä konekohtaisia maveja on. Nyt kun Zerokin on paikalla, niin on toivoa jopa ratkaisusta. :D Tässä mavittava koodi lyhyempänä:

Code: Select all

soldier=LoadObject("Media\soldier.bmp",360)
target=LoadObject("Media\crosshair.bmp")

Repeat
    TurnObject soldier,1
    a=ObjectsOverlap(soldier,target,3)
    DrawScreen
Forever
Mavittaa ainakin pyöritysarvoilla 90,179,180,220,360, mutta ei 72. Mav tulee myös, jos muutan objektien nimet. Mav ei tule, jos sotilasta ei pyöritetä tai törmäystä ei tarkisteta. Sama vika myös exe:ssä. Kone on uudehko ja käyttis Win XP, että ei siitäkään pitäisi kai johtua.
Ihan mielenkiinnosta, mitä tapahtuu jos lisäät johonkin väliin vaikka updategamen? Vai auttaisiko, jos ensin tarkistettaisiin ja sitten vasta pyöritettäisiin? Kannattanee kokeilla. Ja Zero voisi tietysti valaista asiaa.
mza
Newcomer
Posts: 20
Joined: Mon Aug 27, 2007 11:34 pm

Re: Pikselintarkka ObjectsOverlap ja MAV

Post by mza »

Ei auta järjestyksen vaihtaminen tai updategame missään välissä. :|
Bugittaa jopa eri objekteilla, jos koodi on muuten sama.
Post Reply