Why is this going so slow
Blitz3D Forums/Blitz3D Programming/Why is this going so slow
| ||
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 |
| ||
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 |
| ||
What's your system specs? |
| ||
i would like to help you, but you didnt even post any media here?! |
| ||
A modified driver example - xxxx# = ?! What they said! |
| ||
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. |
| ||
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? |
| ||
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. |