Type Slowing Game Down
Blitz3D Forums/Blitz3D Programming/Type Slowing Game Down
| ||
My game speeds having been slowing down dramatically due to the creation of a large type. I go from 340 fps to 15 fps because I do this before the main while loop. Help much appreciated! Type unit Field playerNum Field team Field ID Field x#,y#,z# Field mesh Field colorR,colorG,colorB Field ISselected;;if ISselected, sprite is created Field ISmoving;; Field selectID;;number given to unit when selected, if 10 units are selected selectID will be 1,2,3,4,5,6,7,8,9,10 Field starthealth#;;used to properly position health bar, when unit is hit, health bar shrinks and moves to the left Field health#;;currenthealth Field speed# ;;sprite Field selectsprite;;the select sprite unit uses when its selected Field selectspritetexture Field healthsprite;;sprite displays the units health ;;weapon Field weapon;;weapon graphic Field weaponrange# Field weapondamage# Field weaponalpha# Field weaponrate;;how frequently weapon is fired in millisecs Field weaponlast;;last time(gametime) weapon was fired ;;pivot Field pivot;;wherever the pivot is the unit goes Field pivotx#,pivoty#,pivotz# ;;;;AI fields Field AI;;0 - player controlled, 1 - find and destroy the nearest enemy End Type For i = 0 to 300 aunit.unit = new unit Next |
| ||
Just to make sure: you are *only* using this code before the loop, you don't fill in the fields or loop through this type, right ? |
| ||
Yeah, the speed doesn't decrease progressively, it gets down to 15 fps and stays there. I just found a post about types being slow, I believe the alternative might be to use banks?!?! Although I'm not sure. |
| ||
i dont any reason why having 300 of those type should slow it down. I wouldnt expect any issues until it came to drawing them. |
| ||
thats odd... I get over 1000 fps when I use the following code...Type unit Field playerNum Field team Field ID Field x#,y#,z# Field mesh Field colorR,colorG,colorB Field ISselected;;if ISselected, sprite is created Field ISmoving;; Field selectID;;number given to unit when selected, if 10 units are selected selectID will be 1,2,3,4,5,6,7,8,9,10 Field starthealth#;;used to properly position health bar, when unit is hit, health bar shrinks and moves to the left Field health#;;currenthealth Field speed# ;;sprite Field selectsprite;;the select sprite unit uses when its selected Field selectspritetexture Field healthsprite;;sprite displays the units health ;;weapon Field weapon;;weapon graphic Field weaponrange# Field weapondamage# Field weaponalpha# Field weaponrate;;how frequently weapon is fired in millisecs Field weaponlast;;last time(gametime) weapon was fired ;;pivot Field pivot;;wherever the pivot is the unit goes Field pivotx#,pivoty#,pivotz# ;;;;AI fields Field AI;;0 - player controlled, 1 - find and destroy the nearest enemy End Type For i = 0 To 300 aunit.unit = New unit Next Graphics 640,480,0,2 SetBuffer BackBuffer() While Not KeyDown(1) Cls dif = MilliSecs()-tim If dif >0 Then Text 1,1,1000/dif tim = MilliSecs() Flip False Wend is that what you mean? |
| ||
Oh man do I feel stupid, I figured out what the problem was, I accidentally assigned a game timer to each unit, so every unit was keeping track of how long the game had lasted |
| ||
Glad it's nothing serious then. :) |