Seite 1 von 1

OGRE BUG?

Verfasst: 03.04.2015 14:07
von Hendrik_King1234
Ich will derzeit ein kleines Spiel programmieren, kenne mich mit Ogre und PureBasic eigentlich sehr gut aus, aber wenn ich ein Entity bewegen möchte, und es kollidiert, fängt es merk würdig an herumzuspringen... die Friction ist auf 0

Hier der code

Code: Alles auswählen


InitEngine3D()
InitSprite()
OpenScreen(1920,1080,32,"RG32bit DX0")
CreateTexture(0,20,20)
StartDrawing(TextureOutput(0))
Box(0,0,20,20,RGB(0,255,0))
StopDrawing()
CreateMaterial(0,TextureID(0))

CreateTexture(1,20,20)
StartDrawing(TextureOutput(1))
Box(0,0,20,20,RGB(0,0,255))
StopDrawing()
CreateMaterial(1,TextureID(1))


Add3DArchive("skybox.zip",#PB_3DArchive_Zip)
InitKeyboard()
SkyBox("stevecube.jpg")
CreateCamera(0,0,0,100,100)
CreateCube(0,5)
Y=0
X=40

;MaterialBlendingMode(0,#PB_Material_AlphaBlend)
CreateEntity(1,MeshID(0),MaterialID(1),0,10,10)
MoveCamera(0,EntityX(1),EntityY(1),EntityZ(1),#PB_Absolute)
ENTITYID = 10
Repeat
  CreateEntity(ENTITYID,MeshID(0),MaterialID(0),X,0,Y)
  EntityPhysicBody(ENTITYID,#PB_Entity_StaticBody)
  ;SetEntityAttribute(ENTITYID,#PB_Entity_Friction,0)
  X + 5
  If X = 100
    Y + 5
    X = 0
  EndIf
  ENTITYID + 1
Until Y = 20


EnableWorldCollisions(1)
EnableWorldPhysics(1)
EntityPhysicBody(1,#PB_Entity_BoxBody)
SetEntityAttribute(1,#PB_Entity_Friction,0)
SetEntityAttribute(1,#PB_Entity_Restitution,0)
MoveEntity(1,10,0,0)
Repeat
  ExamineKeyboard()
  CameraLookAt(0,EntityX(1),EntityY(1),EntityZ(1))
  ;MoveCamera(0,EntityX(1),EntityY(1),EntityZ(1),#PB_Absolute)
  ;RotateCamera(0,0,EntityYaw(1),0,#PB_Absolute)
  If KeyboardPushed(#PB_Key_W)
  
EndIf
             >>MoveEntity(1,1,0,0,#PB_Relative|#PB_Local)
  RenderWorld()
  FlipBuffers()
  If KeyboardPushed(#PB_Key_Escape)
  End
  EndIf
ForEver  

Das passiert egal welche Parameter ich eingebe, habe schon ungefähr 100h mit OGRE unter PureBasic verbracht und noch nie ist solch ein Problem aufgetreten...

Re: OGRE BUG?

Verfasst: 04.04.2015 10:54
von Chimorin
Hi,

wo ist der Ursprung des Meshes? Du solltest den Koordinatenursprung deines Objektes in das Zentrum der Masse legen, da um dieses Zentrum alle Gleichungen angelegt werden.

Ich bin gerade nicht am PC, deshalb kann ich nur mutmaßen.

Re: OGRE BUG?

Verfasst: 26.04.2015 20:05
von Chimorin
Mein Ursprungsgedanke hatte nichts mit deinem Problem zu tun, sry.

Du sagst doch schon, dass du die Friction=0 setzt. Friction ist die Reibung. Wo soll die Energie hin, wenn die Reibung auf 0 ist?
Leider kann ich aus deinem Beispiel nicht all zu viel nachvollziehen, die Kamera bewegt sich mit dem Objekt und wird anfangs mit dem Objekt bewegt. Nutze bitte EnableExplicit.