PickedAngle ei toimi kunnolla

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
Skuller!

PickedAngle ei toimi kunnolla

Post by Skuller! » Tue Aug 28, 2007 3:15 pm

Tää toimii melkeen niinku pitäs mutta kun tietystä kohdasta ukko2:n takaa ampuu esim. sen olkapäähän, niin luodit lähtevät aivan väärään suuntaan, elikkä miten tämän saisi korjattua? :?:

Code: Select all



Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type 

FrameLimit 40 'rajoita nopeutta

ukko2=LoadObject("media\guy.bmp",72)
ukko=LoadObject("Media\soldier.bmp",72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

AddText "Nuolista ohjaa, CTRL=ampuu"

ObjectPickable ukko2,2 'circle-pick

Repeat

    ClsColor cbwhite
    ObjectPick ukko

    'Ohjaa ukkoa NUOLILLA
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,2
    If DownKey() Then MoveObject ukko,-2    

    'Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRControl) And reload=0 Then    
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,ukko            
        reload=5 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1


    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
            If ObjectsOverlap(luoti\obj,ukko2,3) Then
                RotateObject luoti\obj,PickedAngle()
            EndIf
                If Distance2(ukko,luoti\obj)>200 Then      
                    DeleteObject luoti\obj 
                    Delete luoti
                EndIf        
    Next luoti

  DrawScreen

Until EscapeKey()




User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: PickedAngle ei toimi kunnolla

Post by CCE » Tue Aug 28, 2007 8:55 pm

Ilmeisesti tuo pikselintarkka PickedAnlge ei tosiaankaan toimi kunnolla, siksi kommennakkin pallo tunnistus

Code: Select all

If ObjectsOverlap(luoti\obj,ukko2,2) Then
Woo, tässä uudessa foorumissa toimivat sisennyksetkin koodissa!

Skuller
Newcomer
Posts: 9
Joined: Tue Aug 28, 2007 2:41 pm

Re: PickedAngle ei toimi kunnolla

Post by Skuller » Wed Aug 29, 2007 4:17 pm

Hieman paremmin toimi tolla pallo tunnistuksel, mutta silti siin tyypissä oli joitakin kohtia joissa luodit lähtevät väärään suuntaan, saattaa tiettyy johtuu noista ukkelin muodoista, pitäis kokeilla että laitan jonkun erillisen pyöreen objektin ton ukon päälle ja siitä sitte otan sen törmäyksen, jos vaikka toimis.

TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: PickedAngle ei toimi kunnolla

Post by TheFish » Wed Aug 29, 2007 4:24 pm

En kokeillut koodia, mutta olin huomaavinani että se objectpick on laitettu ukolle, joten jos ukko kääntyy kun pati on ilmassa niin pickedangle osoittaa väärään suuntaan.
CoolBasic henkilökuntaa
Kehittäjä

Skuller
Newcomer
Posts: 9
Joined: Tue Aug 28, 2007 2:41 pm

Re: PickedAngle ei toimi kunnolla

Post by Skuller » Wed Aug 29, 2007 6:19 pm

TheFish wrote:En kokeillut koodia, mutta olin huomaavinani että se objectpick on laitettu ukolle, joten jos ukko kääntyy kun pati on ilmassa niin pickedangle osoittaa väärään suuntaan.
Nyt kun kokelin niin juuri tuo se ongelma olikin, eli pickedanglessa ei ollu mitään ongelmaa, pitää yrittää muuttaa tuo jotenkin että toimis.

User avatar
elmo123
Active Member
Posts: 153
Joined: Sun Sep 09, 2007 4:19 pm

Re: PickedAngle ei toimi kunnolla

Post by elmo123 » Sun Sep 09, 2007 5:28 pm

Skuller wrote:
TheFish wrote:En kokeillut koodia, mutta olin huomaavinani että se objectpick on laitettu ukolle, joten jos ukko kääntyy kun pati on ilmassa niin pickedangle osoittaa väärään suuntaan.
Nyt kun kokelin niin juuri tuo se ongelma olikin, eli pickedanglessa ei ollu mitään ongelmaa, pitää yrittää muuttaa tuo jotenkin että toimis.
Kannattaisi suorittaa poiminta vasta ampumisen kohdalla, mutta jos ampuu spreadilla monta patia niin homma ei edelleenkään toimi. Siispä suoritetaan poiminta ammunnassa ja pistetään luodeille omat kimpoamiskulmat. Eli näin:

Code: Select all


    Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
        Field obj 'yksi kenttä nimeltään 'obj'
        Field kimpkulma'kimpoamiskulma
    End Type

    FrameLimit 40 'rajoita nopeutta

    ukko2=LoadObject("media\guy.bmp",72)
    ukko=LoadObject("Media\soldier.bmp",72)
    pati=LoadObject("Media\bullet.bmp")
    ShowObject pati,OFF

    AddText "Nuolista ohjaa, CTRL=ampuu"

    ObjectPickable ukko2,2 'circle-pick

    Repeat

        ClsColor cbwhite

        'Ohjaa ukkoa NUOLILLA
        If LeftKey() Then TurnObject ukko,5
        If RightKey() Then TurnObject ukko,-5
        If UpKey() Then MoveObject ukko,2
        If DownKey() Then MoveObject ukko,-2   

        'Ammu-systeemi. Vain, jos ase on ladattu
        If KeyDown(cbKeyRControl) And reload=0 Then   
            
            luoti.AMMUS = New(AMMUS) 'luo uusi ammus
            luoti\obj=CloneObject(pati) 'tee klooni
            'asetetaan pati samaan paikkaan
            CloneObjectPosition luoti\obj,ukko               
            'käännetään pati samaan suuntaan
            CloneObjectOrientation luoti\obj,ukko           
            'katsotaan kimpoamiskulma
            ObjectPick ukko
            luoti\kimpkulma = PickedAngle()

            reload=5 'aseen lataus       
        EndIf
        'päivitä aseen lataaminen
        If reload>0 Then reload=reload-1


        For luoti.AMMUS = Each AMMUS
            MoveObject luoti\obj,6
                If ObjectsOverlap(luoti\obj,ukko2,2) Then
                    RotateObject luoti\obj,luoti\kimpkulma
                EndIf
                    If Distance2(ukko,luoti\obj)>200 Then     
                        DeleteObject luoti\obj
                        Delete luoti
                    EndIf       
        Next luoti

      DrawScreen

    Until EscapeKey()



Kiinnostuin pelien tekemisestä ennen 1. luokkaa.
Sitten 3. luokalla tuli CB. Ja siitä se alkoi.

Blender! TF2! CB! Game Maker! Nokia-mollaus! Kitaransoitto! Breakdance! MadTracker! Minecraft!

Post Reply