Programm wird immer träger
Verfasst: 17.05.2009 19:31
Hallo
Ich experimentiere schon seit einer Weile mit der ogre Engiene herum, wollte mir gerne mal ein kleines 3d Game basteln und dazu hab ich folgendes Programm:
Hier kann man das Ganze noch mit 3d-Archiv runterladen zum testen.
So wenn man nun das Programm startet läuft erst mal alles ganz normal aber je länger das Programm läuft (ca. 30min) desto träger wird alles und das kamera Entity schiebt sich immer weiter weg von der Kamera wenn man es bewegt. Woran könnte das liegen, hab ich vieleicht was übersehen oder könnte das ein Bug sein ?
Danke schon mal für eure Bemühungen.
Ich experimentiere schon seit einer Weile mit der ogre Engiene herum, wollte mir gerne mal ein kleines 3d Game basteln und dazu hab ich folgendes Programm:
Code: Alles auswählen
InitEngine3D()
Add3DArchive("3d-Test", #PB_3DArchive_FileSystem)
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(0, 0, 0, 1024, 768, "")
OpenWindowedScreen(WindowID(0), 0, 0, 1024, 768, 0, 0, 0)
SetFrameRate(200)
EnableWorldPhysics(1)
EnableWorldCollisions(1)
LoadMesh (0, "kamera.mesh")
LoadMesh (1, "boden.mesh")
LoadMesh (2, "haus.mesh")
LoadTexture(0, "kamera-texture.jpg")
LoadTexture(1, "boden-texture.jpg")
LoadTexture(2, "haus-texture.jpg")
CreateMaterial(0, TextureID(0))
CreateMaterial(1, TextureID(1))
CreateMaterial(2, TextureID(2))
CreateEntity(0, MeshID(0), MaterialID(0))
CreateEntity(1, MeshID(1), MaterialID(1))
CreateEntity(2, MeshID(2), MaterialID(2))
EntityMaterial(0, MaterialID(0))
EntityMaterial(1, MaterialID(1))
EntityMaterial(2, MaterialID(2))
RotateEntity(1, 90, 0, 0)
EntityLocate(1,0,-100,0)
ScaleEntity(1,5,5,5)
ScaleEntity(0,0.3,0.3,0.3)
EntityLocate(0,-1000,0,0)
EntityLocate(2,0,30,0)
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,0,0,0)
RotateCamera(0,-0,0,0)
CameraBackColor(0, RGB(0, 0, 255))
CreateCamera(1, 50, 0, 50, 100)
CameraLocate(1,0,1500,00)
RotateCamera(1,-55,0,0)
EntityPhysicBody(0, #PB_Entity_BoxBody, #PB_Entity_AbsoluteBodyMove)
EntityPhysicBody(1, #PB_Entity_StaticBody )
EntityPhysicBody(2, #PB_Entity_StaticBody )
CreateLight(0, RGB(255,255,255), 0, 1000, 0)
speed.f=400
Repeat
ClearScreen(RGB(0, 0, 255))
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_A)
KeyX.f = -speed/2
ElseIf KeyboardPushed(#PB_Key_D)
KeyX.f = speed/2
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_W)
KeyY.f = -speed
ElseIf KeyboardPushed(#PB_Key_S)
KeyY.f = speed
Else
KeyY = 0
EndIf
EndIf
If ExamineMouse()
MouseX.f = -MouseDeltaX()/10
MouseY.f = -MouseDeltaY()/10
mousex1.f+mousex
mousey1.f+mousey
EndIf
If mousey1.f>55
mousey1.f=55
EndIf
If mousey1.f<-55
mousey1.f=-55
EndIf
If mousex1>=360 Or mousex1<=-360
Mousex1=0
EndIf
PointPick(0, 1024/2, 768/2)
rix.f=PickX()
riy.f=PickY()
riz.f=PickZ()
x.f= -Keyy*rix-Keyx*riz
y.f= -KeyY*riz+Keyx*rix
RotateCamera(0, MouseY1, MouseX1, 0, #PB_Absolute)
RotateEntity(0, 0, MouseX1, 0, #PB_Absolute)
EntityLocate(0,EntityX(0),EntityY(1)+100,EntityZ(0))
MoveEntity(0, x, 0, y)
CameraLocate(0,EntityX(0),EntityY(0),EntityZ(0))
CameraLookAt(1,EntityX(0),EntityY(0),EntityZ(0))
;Delay(50)
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
So wenn man nun das Programm startet läuft erst mal alles ganz normal aber je länger das Programm läuft (ca. 30min) desto träger wird alles und das kamera Entity schiebt sich immer weiter weg von der Kamera wenn man es bewegt. Woran könnte das liegen, hab ich vieleicht was übersehen oder könnte das ein Bug sein ?
Danke schon mal für eure Bemühungen.