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 » Tue Aug 28, 2007 5:07 pm

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

User avatar
Skapth
Newcomer
Posts: 8
Joined: Sun Aug 26, 2007 2:50 pm
Location: Joensuu, Finland

Re: Pikselintarkka ObjectsOverlap ja MAV

Post by Skapth » Tue Aug 28, 2007 5:12 pm

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 » Tue Aug 28, 2007 6:08 pm

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 » Tue Aug 28, 2007 6:31 pm

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

User avatar
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 » Tue Aug 28, 2007 10:37 pm

Itselläni tuo toimi moitteetta. Lienee konekohtainen ongelma.. Kokeikaapa te, joilla pukittaa, tuleeko moista käännettyyn .EXE:en?

User avatar
KilledWhale
Tech Developer
Tech Developer
Posts: 543
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: Pikselintarkka ObjectsOverlap ja MAV

Post by KilledWhale » Wed Aug 29, 2007 8:38 am

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 » Wed Aug 29, 2007 11:37 pm

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.

User avatar
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 » Wed Aug 29, 2007 11:41 pm

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 » Wed Aug 29, 2007 11:45 pm

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

Post Reply