Why is this going so slow

Blitz3D Forums/Blitz3D Programming/Why is this going so slow

Chaosspear(Posted 2007) [#1]
Graphics3D 640,480,32,2
SetBuffer BackBuffer()
WBuffer 1

HidePointer

Type Player
	Field iD, name$, mesh[10], score
End Type

Const GRAVITY#=-.01

Global camera=CreateCamera()
EntityType camera,TCam

light=CreateLight()

Const BODY=1,WHEEL=2,SCENE=3,bul=4,SkyYY=5,TCam=6

Collisions BODY,SCENE,2,3
Collisions WHEEL,SCENE,2,3
Collisions bul,scene,2,3

AppTitle"Play the car gameS"

Global car=LoadMesh("carr.3ds")
EntityRadius car,.6
carty$="jeep"
PositionEntity car,0,20,0
ScaleEntity car,0.02,0.02,0.02
EntityType car,BODY

EntityShininess car,1

shadow=LoadSprite("shadow.bmp",4)
ScaleSprite shadow,1,1
RotateEntity shadow,90,0,0
SpriteViewMode shadow,4

bulle=CreateSphere(2,car)
ScaleEntity bulle,8,8,16
EntityType bulle,bul
EntityAlpha bulle,0

skyt=LoadTexture("sky.bmp",2)

sphere=CreateSphere(8)
PositionEntity sphere,250,0,-300
ScaleEntity sphere,550,550,550
FlipMesh sphere
EntityAlpha sphere,1
EntityType sphere,SkyYY
EntityTexture sphere,skyt

Global terrain=LoadTerrain("ground t.bmp")
ScaleEntity terrain,3,28,3
PositionEntity terrain,-180,0,-727
EntityType terrain,SCENE
TerrainShading terrain,True

Collisions TCam,SCENE,2,2

Type flar
	Field flare,K#
End Type

Collisions bul,SkyYY,2,2

jeept=LoadTexture("jeept.png")

boom=LoadSprite("boom2.bmp")
EntityAlpha boom,0

SeedRnd(MilliSecs())

If carty$="jeep"
EntityTexture car,jeept
EndIf

groundt=LoadTexture("ground tt.bmp")
ScaleTexture groundt,TerrainSize(terrain),TerrainSize(terrain)

grass=LoadTexture("grass.bmp")
TextureBlend grass,3

EntityTexture terrain,grass,0,0
EntityTexture terrain,groundt,0,1

Global wheels[4]

cnt=1
For z#=300 To -300 Step -600
For x#=-200 To 200 Step 400
wheels[cnt]=CreateSphere( 8,car )
EntityAlpha wheels[cnt],0
ScaleEntity wheels[cnt],5,5,5
EntityRadius wheels[cnt],.6
PositionEntity wheels[cnt],x,0,z
EntityType wheels[cnt],WHEEL
cnt=cnt+1
Next
Next

Type tt
	Field nboom,A#,B#
End Type

KKW=1

target=CreatePivot(car)
PositionEntity target,0,50,-170

CameraClsColor camera,0,0,255

Type bu
	Field bull,litt,sf
End Type

speed#=0
x_vel#=0:prev_x#=EntityX( car )
y_vel#=0:prev_y#=EntityY( car )
z_vel#=0:prev_z#=EntityZ( car )

Type lit
	Field light
End Type

Collisions Body,SkyYY,2,2

.there
send=MilliSecs()
While level=0
Cls

If KeyDown(29) And TI=0
bullet.bu=New bu
time=MilliSecs()
TI=1
bullet\bull=CopyEntity(bulle,car)
PositionEntity bullet\bull,0,21,27
EntityParent bullet\bull,0
EntityAlpha bullet\bull,1
bullet\litt=CreateLight(3,bullet\bull)
EndIf
If KeyDown(1)
End
EndIf

For bullet.bu = Each bu
MoveEntity bullet\bull,0,0,1.5
fl.flar=New flar
fl\flare=CopyEntity(boom,bullet\bull)
EntityParent fl\flare,0
fl\K=0
ScaleSprite fl\flare,20,20
EntityAlpha fl\flare,1
fl\K#=1
If CountCollisions(bullet\bull)>0
xxxx#=EntityX(bullet\bull,True)
yyyy#=EntityY(bullet\bull,True)
zzzz#=EntityZ(bullet\bull,True)
FreeEntity fl\flare
Delete fl
FreeEntity bullet\bull
Delete bullet
dt.tt=New tt
dt\nboom=CopyEntity(boom)
ScaleSprite dt\nboom,10,10
dt\B#=1
PositionEntity dt\nboom,xxxx#,yyyy#,zzzz#
dt\A#=1
EndIf
Next

For fl.flar = Each flar
ScaleSprite fl\flare,fl\K#,fl\K#
If fl\K#>0
fl\K#=fl\K#-0.1
Else
FreeEntity fl\flare
Delete fl
EndIf
Next

If KeyDown(17) And KeyDown(23) And KeyHit(49)
If KKW=1
waa=0
KKW=0
EndIf
waa=-waa
If waa=0 Then waa=1
If waa=-1 Then waa=0
EndIf

WireFrame waa

For dt.tt = Each tt
If dt\A#>0
dt\A#=dt\A#-0.1
dt\B#=dt\B#+10
RotateSprite dt\nboom,B#
EndIf
EntityAlpha dt\nboom,dt\A#
Next

If MilliSecs()>time + 150
TI=0
EndIf

zx#=(EntityX( wheels[2],True )+EntityX( wheels[4],True ))/2
zx=zx-(EntityX( wheels[1],True )+EntityX( wheels[3],True ))/2
zy#=(EntityY( wheels[2],True )+EntityY( wheels[4],True ))/2
zy=zy-(EntityY( wheels[1],True )+EntityY( wheels[3],True ))/2
zz#=(EntityZ( wheels[2],True )+EntityZ( wheels[4],True ))/2
zz=zz-(EntityZ( wheels[1],True )+EntityZ( wheels[3],True ))/2
AlignToVector car,zx,zy,zz,1

zx#=(EntityX( wheels[1],True )+EntityX( wheels[2],True ))/2
zx=zx-(EntityX( wheels[3],True )+EntityX( wheels[4],True ))/2
zy#=(EntityY( wheels[1],True )+EntityY( wheels[2],True ))/2
zy=zy-(EntityY( wheels[3],True )+EntityY( wheels[4],True ))/2
zz#=(EntityZ( wheels[1],True )+EntityZ( wheels[2],True ))/2
zz=zz-(EntityZ( wheels[3],True )+EntityZ( wheels[4],True ))/2
AlignToVector car,zx,zy,zz,3

cx#=EntityX( car ):x_vel=cx-prev_x:prev_x=cx
cy#=EntityY( car ):y_vel=cy-prev_y:prev_y=cy
cz#=EntityZ( car ):z_vel=cz-prev_z:prev_z=cz

cnt=1
For z=25 To -25 Step -50
For x=-30 To 30 Step 60
PositionEntity wheels[cnt],x,-10,z
cnt=cnt+1
Next
Next

If EntityCollided( car,SCENE )
G=0
If KeyDown(203) TurnEntity car,0,speed*5,0 G=1
If KeyDown(205) TurnEntity car,0,-speed*5,0 G=2
If KeyDown(200)
speed=speed+.02
If speed>.7 speed=.7
Else If KeyDown(208)
speed=speed-.02
If speed<-.5 speed=-.5
Else
speed=speed*.9
EndIf
MoveEntity car,0,0,speed
TranslateEntity car,0,GRAVITY,0
Else
If G=1
TurnEntity car,0,speed*5,0
ElseIf G=2
TurnEntity car,0,-speed*5,0
EndIf
TranslateEntity car,x_vel,y_vel+GRAVITY,z_vel
EndIf

PositionEntity shadow,EntityX#(car,True),TerrainY#(terrain,EntityX#(car,True),EntityY(car,True),EntityZ#(car,True))+.1,EntityZ#(car,True)

If speed>=0	
dx#=EntityX( target,True )-EntityX( camera )
dy#=EntityY( target,True )-EntityY( camera )
dz#=EntityZ( target,True )-EntityZ( camera )
TranslateEntity camera,dx*.3,dy*.3,dz*.3
EndIf
PointEntity camera,car

RotateEntity shadow,EntityPitch#(car,True)+90,0,0

UpdateWorld
RenderWorld
If KeyHit(25)
FlushKeys()
While Not KeyHit(25)
If KeyDown(1)
End
EndIf
If KeyHit(2)
FlushKeys()
me$=Input$("what would you like it to be called? ")
SaveBuffer(BackBuffer(),me$+".bmp")
EndIf
Flip
Wend
EndIf
Color 0,0,0
Flip
Wend
End

I used a 256 by 256 terrain and just a bunch of dots for the grass why is it going so slow!
thanks


Rob Farley(Posted 2007) [#2]
Before I even look at this, you need to learn how to tab your code.

That is totally unreadable.

http://www.blitzbasic.com/codearcs/codearcs.php?code=1229


Fuller(Posted 2007) [#3]
What's your system specs?


bytecode77(Posted 2007) [#4]
i would like to help you, but you didnt even post any media here?!


Stevie G(Posted 2007) [#5]
A modified driver example - xxxx# = ?!

What they said!


Wings(Posted 2007) [#6]
Tipp tp fault trace this.

To find out whats slowing it down. you must put in some debug code. i usaly use the millisecs() comand to find out where in code and what is taking my speed.



;Debug globals
Global ct#


;Debug Code put this to start testing.
ct#=millisecs()


;To stop timer
ct#=millisecs()-ct#


;Put before flip
text 0,0,ct#



hope this help..
iam woundering have you tryed out the trisrender() command.


also Never use GOTO or GOSUB they mess up your code.
Only use em if nothing else is possible. i never use em.


puki(Posted 2007) [#7]
I ran it and it ran fine.

I increased the resolution to 1024,768,32,1

It still ran fine.

What are your system specs?


Chaosspear(Posted 2007) [#8]
I'm Sorry my computer was running something to increase my virtual memory but today when I ran it it ran fine sorry for the trouble.