B3D CarEngine: Probleme mit DPE1.0b
Übersicht

FelatBetreff: B3D CarEngine: Probleme mit DPE1.0b |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Warum springt mein Auto herum?
Und könnte jemand mir helfen mit den richtigen Rotation der Reifen, so dass die Reifen drehen richtig... Ich habe DevilPhysicEngine 1.0b benutzt. Danke. Code: [AUSKLAPPEN] ;eldernsoft car game engine v1.0 Include "DevilPhysicEngine.bb" Graphics3D 800,600,16,2 Global mX#=0 Global MY#=0 Global mZ#=0 Dim car_mtire(100); visual car tires Dim car_ptire(100); tire physics Dim car_tire(100) ; physic detection tires(grey tires) cam=CreateCamera() camP=CreatePivot() EntityParent cam,camp PositionEntity camp,0,2,0 light=CreateLight() InitPhysics() createscene() CreateCarTire("car_tire1.b3d",3,3,3, 0.1,0.1, 1.2,0.6, 1, 500, 0.1) CreateCarTire("car_tire1.b3d",-3,3,3, 0.1,0.1, 1.2,0.6, 2, 500, 0.1) CreateCarTire("car_tire1.b3d",3,3,-3, 0.1,0.1, 1.2,0.6, 3, 500, 0.1) CreateCarTire("car_tire1.b3d",-3,3,-3, 0.1,0.1, 1.2,0.6, 4, 500, 0.1) SetPhysicMeshRotation(car_ptire(2),180,180,90) SetPhysicMeshRotation(car_ptire(4),180,180,90) CenterTiresX#=ArithmeticMiddleX(car_tire(1),car_tire(2),car_tire(3),car_tire(4)) CenterTiresY#=ArithmeticMiddleY(car_tire(1),car_tire(2),car_tire(3),car_tire(4)) CenterTiresZ#=ArithmeticMiddleZ(car_tire(1),car_tire(2),car_tire(3),car_tire(4)) cube=CreateCube() bodycubep=SetPhysicMesh(cube,"cube",10000) SetPhysicMeshPosition(bodycubep, CenterTiresX#, CenterTiresY#+4, CenterTiresZ#) applytire(bodycubep,car_ptire(1)) applytire(bodycubep,car_ptire(2)) applytire(bodycubep,car_ptire(3)) applytire(bodycubep,car_ptire(4)) SetPhysicGravity(1) While Not KeyHit(1) SetPhysicMeshTwist(car_ptire(1),1,0,0) SetPhysicMeshTwist(car_ptire(2),1,0,0) SetPhysicMeshTwist(car_ptire(3),1,0,0) SetPhysicMeshTwist(car_ptire(4),1,0,0) UpdatePhysics(.05) ;PositionEntity camP,EntitysX(car_mtire(1))+mX#,EntitysY(car_mtire(1))+mY#+2.2,EntitysZ(car_mtire(1))+mZ#-5.5 If KeyDown(200) Then MoveEntity cam,0,0,1 If KeyDown(208) Then MoveEntity cam,0,0,-1 If KeyDown(203) Then TurnEntity cam,0,3,0 If KeyDown(205) Then TurnEntity cam,0,-3,0 If KeyDown(36) Then MoveEntity cam,0,1,0 If KeyDown(50) Then MoveEntity cam,0,-1,0 RenderWorld UpdateWorld Text 10,10,goimp# Flip Wend FreePhysics() End Function createscene() area=CreateCube() ScaleEntity area,100,1,100 asphalt_tex=LoadTexture("asphalt_tex.jpg") ScaleTexture asphalt_tex,.04,.04 EntityTexture area,asphalt_tex SetStaticPhysicMesh(area, "Cube", 0, -1, 0) wire_tex=LoadTexture("wire_tex.jpg") giv1=CreateCube() ScaleEntity giv1,100,10,.1 ScaleTexture wire_tex,.01,.1 PositionEntity giv1,0,0,100 EntityTexture giv1,wire_tex SetStaticPhysicMesh(giv1, "Cube", 0, 0, 100) End Function Function CreateCarTire(tireloc$,x#,y#,z#,mx#,mz#,px#,pz#,number,mass#,a#=0) car_mtire(number)=LoadMesh(tireloc$) ScaleMesh car_mtire(number),mx#,mz#,mx# RotateEntity car_mtire(number),0,0,90 car_tire(number)=CreateCylinder(32) EntityAlpha car_tire(number),a# ScaleMesh car_tire(number),px#,pz#,px# car_ptire(number)=SetPhysicMesh(car_tire(number), "Cylinder", mass#) ;1gram = 10 units.. calculate yourself.. SetPhysicMeshRotation(car_ptire(number),0,0,90) SetPhysicMeshPosition(car_ptire(number),x#,y#,z#) EntityParent car_mtire(number),car_tire(number) End Function Function applytire(tire1,tire2) ; location of the tire AttachPhysicMesh(tire1,tire2) End Function Function ArithmeticMiddleX(tire1,tire2,tire3,tire4) X#=(EntityX(tire1,1)+EntityX(tire2,1)+EntityX(tire3,1)+EntityX(tire4,1))/4 Return X# End Function Function ArithmeticMiddleY(tire1,tire2,tire3,tire4) Y#=(EntityY(tire1,1)+EntityY(tire2,1)+EntityY(tire3,1)+EntityY(tire4,1))/4 Return Y# End Function Function ArithmeticMiddleZ(tire1,tire2,tire3,tire4) Z#=(EntityZ(tire1,1)+EntityZ(tire2,1)+EntityZ(tire3,1)+EntityZ(tire4,1))/4 Return Z# End Function |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group