Teksti jää kentän alle.

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
Petse
Newcomer
Posts: 36
Joined: Thu Dec 20, 2007 7:29 am

Teksti jää kentän alle.

Post by Petse »

Minulla on räiskintäpeli. Ongelma on että elkku jää aina kartan alle. Elkku näkyy vain kohdista, jossa ei ole karttaa.

Luon elkun näkyviin näin:

Code: Select all

Text 0,0, "Elkku: "+elkku
Auta minun kaupunkiani: http://timppacity.myminicity.com/ind. Et menetä mitään
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Teksti jää kentän alle.

Post by Harakka »

Laita komento DrawGame ennen tekstin piirtoa.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Teksti jää kentän alle.

Post by MaGetzUb »

Muista Drawgame pistää ennen tekstejä ja kuvia jotka tulee ruutuun näkymään.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Petse
Newcomer
Posts: 36
Joined: Thu Dec 20, 2007 7:29 am

Re: Teksti jää kentän alle.

Post by Petse »

ei auttanut :( Kiitos silti
Auta minun kaupunkiani: http://timppacity.myminicity.com/ind. Et menetä mitään
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Teksti jää kentän alle.

Post by MaGetzUb »

Code: Select all


FrameLimit 40 'rajoita nopeutta

kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,1

ukko = LoadObject ("Media\guy.bmp",72)

SetupCollision ukko, kartta, 1, 4, 2
elämä=100
Repeat

    'Ukon ohjaus
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,2
    If DownKey() Then MoveObject ukko,-2

    UpdateGame
    
    DrawGame 
elämä=elämä-1
    Text 0,0,"Toimiiko? Elämät: "+elämä

    CloneCameraPosition ukko

    DrawScreen

Forever
Itellä toimii.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Petse
Newcomer
Posts: 36
Joined: Thu Dec 20, 2007 7:29 am

Re: Teksti jää kentän alle.

Post by Petse »

Toimii! Mun pelissä ei.
Auta minun kaupunkiani: http://timppacity.myminicity.com/ind. Et menetä mitään
Petse
Newcomer
Posts: 36
Joined: Thu Dec 20, 2007 7:29 am

Re: Teksti jää kentän alle.

Post by Petse »

Toimii! Mun pelissä ei toimi. Myöhemmin huomasin että kun poiminnan poisti, teksti tuli näkyviin. Viitsiikö joku selittää??? Kiitos :roll:
Auta minun kaupunkiani: http://timppacity.myminicity.com/ind. Et menetä mitään
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Teksti jää kentän alle.

Post by koodaaja »

Mitä ihmettä, eihän sen pitäisi vaikuttaa O: siis sinulla on ensin drawgame, sitten hiparien piirto ja viimeisenä drawscreen? Kyllä sen noin pitäisi toimia vaikka mitkä poiminnat päällä. Outoa..
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Teksti jää kentän alle.

Post by MaGetzUb »

Code: Select all


FrameLimit 40  'rajoita nopeutta
DrawToWorld ON 'mahdollistaa piirtämisen maailmaan

'lataa kartta
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
ObjectPickable kartta, ON 'aseta se poimittavaksi
PlayObject kartta,0,0,1 'animoi kartta

'lataa pelaaja
ukko = LoadObject ("Media\guy.bmp",72)

'lataa vihulainen
vihu = LoadObject ("Media\guy.bmp",72)
ObjectPickable vihu, 2 'aseta se poimittavaksi
PositionObject vihu, 32,150 'sijoita ylemmäs

'törmäykset
SetupCollision ukko, vihu, 2, 2, 2
'kartta-törmäykset on hyvä esitellä viimeiseksi
SetupCollision ukko, kartta, 1, 4, 2
Elämät=100
Repeat

If Elämät=>0 Then Elämät=Elämät-1
    'Ukon ohjaus
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,2
    If DownKey() Then MoveObject ukko,-2

    UpdateGame
    CloneCameraPosition ukko    
    
    DrawGame 'tämä komennetaan ennen piirtokomentoja
    
    'suorita poiminta
    ObjectPick ukko
    e=PickedObject()
    
    'jos poiminta osui vihuun
    If e=vihu Then
        Color cbMagenta
        Circle PickedX()-4,PickedY()+4,8,OFF
    EndIf
    
    'jos poiminta osui karttaan
    If e=kartta Then
        Color cbGreen
        Circle PickedX()-4,PickedY()+4,8,OFF    
    EndIf


Color 255,255,255
Text 15,15,"Elämät: "+Elämät

    DrawScreen 'piirrä näyttö

Forever



Ja tuo toimii ku unelma... Entä muilla?
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: Teksti jää kentän alle.

Post by Marcoder »

Petse wrote:Toimii! Mun pelissä ei toimi. Myöhemmin huomasin että kun poiminnan poisti, teksti tuli näkyviin. Viitsiikö joku selittää??? Kiitos :roll:
Kuten koodaaja jo sanoi niin poiminnat ei vaikuta tuohon mitenkään.
Vähän vaikeaa auttaa kun ei ole koodia nähtävillä. Sehän voi olla vaikka minkälaista sotkua ja DrawGame vaikka jossain toteutumattomassa iffissä tms.
Laita koodia kehiin niin apu varmasti löytyy.
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Teksti jää kentän alle.

Post by MaGetzUb »

Entä kuinka monta kertaa olet käyttänyt DrawGamea? Ittelläni menee pelin pasmat ihan sekaasi jos DrawGameja on tullut liikaa.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Petse
Newcomer
Posts: 36
Joined: Thu Dec 20, 2007 7:29 am

Re: Teksti jää kentän alle.

Post by Petse »

Tällänen söherö

Code: Select all

SCREEN 800, 600 ' aseta näytön koko

FrameLimit 40 'rajoita nopeutta

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

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

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

kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp") 'lataa kartta
PlayObject kartta,0,0,1                                'animoi kartta
ObjectPickable kartta, ON 'aseta se poimittavaksi
DrawToWorld ON 'mahdollistaa piirtämisen maailmaan

salapati=LoadObject("Media\bigbullet.bmp")                    'lataa "isäntäluoti"...
ShowObject salapati,OFF
pati=LoadObject("Media\bullet.bmp")                    'lataa "isäntäluoti"...
ShowObject pati,OFF                                    '...ja piilota se
ukko = LoadObject ("Media\guy.bmp",72)                 'lataa peliukko
vihu = LoadObject ("Media\soldier.bmp",72)             'lataa vihu
ObjectPickable vihu, 2 'aseta se poimittavaksi
PositionObject vihu, 200,-300                            'sijoita vihu
PositionObject ukko, 0,0                               'sijoita ukko 
SetupCollision ukko, kartta, 1, 4, 2                   'aseta ukko törmäämään seiniin
SetupCollision vihu, kartta, 1, 4, 2                   'aseta vihu törmäämään seiniin
Vihunelämät = 100
elämät      = 100


Repeat                                                 'aloita pääsilmukka



'Ukon ohjaus---------------------------------------------------------
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,3
    If DownKey() Then MoveObject ukko,-3
    
    UpdateGame                                                

    CloneCameraPosition ukko                          'kameraa seuraa ukkoa
 
        'ukon ammunta
    If KeyDown(cbKeyRControl) And reload=0 Then    
        ukonluoti.ukonAMMUS = New(ukonAMMUS) 'luo uusi ammus
        ukonluoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition ukonluoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation ukonluoti\obj,ukko            
        reload=5 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1

    'Päivitä kaikki ammukset
    For ukonluoti.ukonAMMUS = Each ukonAMMUS
        MoveObject ukonluoti\obj,6
           If ObjectsOverlap (ukonluoti\obj, vihu) Then         'jos luoti on päällekkäin ukon kanssa...
            Vihunelämät -5
            DeleteObject ukonluoti\obj                              
            Delete ukonluoti              
           EndIf 

    Next ukonluoti
    
        If KeyDown(cbKeyRshift) And reload=0 Then    
        salaluoti.salaAMMUS = New(salaAMMUS) 'luo uusi ammus
        salaluoti\obj=CloneObject(salapati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition salaluoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation salaluoti\obj,ukko            
        reload=400 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1

    'Päivitä kaikki ammukset
    For salaluoti.salaAMMUS = Each salaAMMUS
        MoveObject salaluoti\obj,6
           If ObjectsOverlap (salaluoti\obj, vihu) Then         'jos luoti on päällekkäin vihun kanssa...
            Vihunelämät -90
            DeleteObject salaluoti\obj                              
            Delete salaluoti              
           EndIf 
    Next salaluoti
    




    
'Vihun toiminta------------------------------------------------------

      MoveObject vihu,2                                 'liikuta vihua
    If CountCollisions(vihu) Then TurnObject vihu, Rand (0,12) 'jos vihu törmää, etsi uusi suunta
    
    If CanSee(vihu, ukko, 360) Then PointObject vihu, ukko      'jos hahmo osuu vihun näkökenttään, käännä vihu ukkoa kohti...
    If CanSee(vihu, ukko, 360) And reload=0 Then                '...ja ammu ukkoa  
         luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,vihu                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj,vihu            
        reload=5 'aseen lataus
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1

    'Päivitä kaikki ammukset
    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6                               'liikuta ammusta 
           If ObjectsOverlap (luoti\obj, ukko) Then         'jos luoti on päällekkäin ukon kanssa...
            elämät -5
            DeleteObject luoti\obj                              
            Delete luoti              
           EndIf     
    Next luoti        

'Tutkitaan missä kulmassa _obj2 on objektista _obj1 katsottuna
Function ObjectDirection(_obj1, _obj2)
    a# = GetAngle2(_obj1, _obj2) - ObjectAngle(_obj1)
    If a > 180 Then a = a - 360
    If a < -180 Then a = a + 360
    Return a
EndFunction

'Tutkitaan näkeekö ukon   
    Function CanSee(_obj1, _obj2, _fov)
'Ensin tarkistetaan että kakkonen on ykkösen näkökentässä
    If Abs(ObjectDirection(_obj1, _obj2)) > _fov Then Return False
'Tarkistetaan ettei ole seinää välissä
    Return ObjectSight(_obj1, _obj2)
EndFunction

DrawGame

Text 0,0,"Vihun elkku: "+VihunElkku 

If Vihunelämät < 0 Then'¨
MakeError "Voitit!"
Else
EndIf 

If elämät < 0 Then'¨
MakeError "Kuolit"
Else
EndIf 

DrawGame

    ObjectPick ukko
    e=PickedObject()
    
    'jos poiminta osui vihuun
    If e=vihu Then
        Color cbMagenta
        Circle PickedX()-4,PickedY()+4,8,OFF
    EndIf
    
    'jos poiminta osui karttaan
    If e=kartta Then
        Color cbGreen
        Circle PickedX()-4,PickedY()+4,8,OFF    
    EndIf
         
      
    DrawScreen
Forever
Huomasin tossa paljon virheitä. Noilla on sama latausjuttu, eli et voi ampua jos vihu ampuu sinua :O! Ps. Miten saan luodit törmäämään karttaan? :oops: Kiitos avusta :)
Auta minun kaupunkiani: http://timppacity.myminicity.com/ind. Et menetä mitään
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: Teksti jää kentän alle.

Post by Marcoder »

Ota jälkimmäinen DrawGame pois niin elkkutekstikin jää näkyviin.
Post Reply