fps ja objekti määrä

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
RaatoX
Member
Posts: 54
Joined: Thu Aug 12, 2010 7:04 pm

fps ja objekti määrä

Post by RaatoX »

Jätetään heti kommentit siitä, että kyseinen pätkä on jonkun muun ;)
Miksi kyseinen ohjelmapätkä, johon olen lisännyt pari omaa juttua vaikuttaa oudosti fps:ään?
Eli luodaan 50 vihollista, jotka liikkuvat ja kääntyvät pelaajaa kohti tietyn etäisyyden päästä.
Kun pelaaja kulkee vihollislauman läpi, huomaa kuinka, joka kerta fps tipahtaa alaspäin.
Mikä koodissa syö nopeutta?

Code: Select all

SCREEN 1200,600,32,2
SetWindow "KOE",3,"Tallensitko Pelin?"

'Vihu engine. copyright to Ukkeli. Ei saa copy-pastea ilman tätä!
FrameLimit 70 'limit game speed
'luo uuden tyypin
Type vihut
Field obj
End Type

ukko=LoadObject("media\guy.bmp", 72)
vihu=LoadObject("media\soldier.bmp", 72)

ShowObject vihu, OFF

For v=1 To 50
    vih.vihut = New(vihut)

    vih\obj=CloneObject(vihu)

    PositionObject vih\obj,Rand(150,-150),Rand(200,-200)
    SetupCollision vih\obj,ukko,2,2,2
    'ObjectPickable vih\obj,1 'pixel-perfect
  Next v  

Repeat

    If UpKey() Then MoveObject ukko,10
    If DownKey() Then MoveObject ukko,-10
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5


For vih.vihut = Each vihut

välimatka=Distance2(ukko,vih\obj)
  If välimatka<100 Then
   MoveObject vih\obj, 3
   PointObject vih\obj, ukko
 

 For Bvihut.vihut = Each vihut
    If Bvihut <> vih Then SetUpCollision Bvihut\obj, vih\obj, 2,2,2
 Next Bvihut
  
 End If

Next vih

Text 10,10,FPS()
DrawScreen

Forever 

Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: fps ja objekti määrä

Post by Sly_Jack0 »

Käytät SetupCollisionia pääloopissa joka kierroksella.
RaatoX
Member
Posts: 54
Joined: Thu Aug 12, 2010 7:04 pm

Re: fps ja objekti määrä

Post by RaatoX »

Kuinkas pätkä pitäisi rakentaa, jotta objektit eivät menisi päällekkäin ja ne liikkuu ja kääntyy vasta tietyn etäisyyden päässä ja fps pysyy hyvänä?
Jos setupcollisionin pistää pääloopin ulkopuolelle objektit menee päällekkäin.
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: fps ja objekti määrä

Post by Latexi95 »

RaatoX wrote:Kuinkas pätkä pitäisi rakentaa, jotta objektit eivät menisi päällekkäin ja ne liikkuu ja kääntyy vasta tietyn etäisyyden päässä ja fps pysyy hyvänä?
Jos setupcollisionin pistää pääloopin ulkopuolelle objektit menee päällekkäin.
Eivätkä mene jos teit sen oikein... Tässä toimiva koodi:

Code: Select all

SCREEN 1200,600,32,2
SetWindow "KOE",3,"Tallensitko Pelin?"

'Vihu engine. copyright to Ukkeli. Ei saa copy-pastea ilman tätä!
FrameLimit 70 'limit game speed
'luo uuden tyypin
Type vihut
Field obj
End Type

ukko=LoadObject("media\guy.bmp", 72)
vihu=LoadObject("media\soldier.bmp", 72)

ShowObject vihu, OFF

For v=1 To 50
    vih.vihut = New(vihut)

    vih\obj=CloneObject(vihu)

    PositionObject vih\obj,Rand(150,-150),Rand(200,-200)
    SetupCollision vih\obj,ukko,2,2,2
    'ObjectPickable vih\obj,1 'pixel-perfect
Next v 
For vih.vihut = Each vihut
    For Bvihut.vihut = Each vihut
        If Bvihut <> vih Then SetUpCollision Bvihut\obj, vih\obj, 2,2,2
    Next Bvihut
Next vih

Repeat

    If UpKey() Then MoveObject ukko,10
    If DownKey() Then MoveObject ukko,-10
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5


    For vih.vihut = Each vihut
        
        välimatka=Distance2(ukko,vih\obj)
        If välimatka<100 Then
           MoveObject vih\obj, 3
           PointObject vih\obj, ukko
        End If
        
    Next vih

    Text 10,10,FPS()
    DrawScreen

Forever 
Voisitko sisentää kunnolla ensikerralla...
RaatoX
Member
Posts: 54
Joined: Thu Aug 12, 2010 7:04 pm

Re: fps ja objekti määrä

Post by RaatoX »

Kiitos taas :)
Post Reply