hi !
I want to move some cubes and save the coordinates to a file - but somehow it doesn't work.
I want to move some cubes and save the coordinates to a file - but somehow it doesn't work.
; ---------------------- Graphics3D 640,480 SetBuffer BackBuffer() Global camera=CreateCamera() PositionEntity camera,0,0,-20 light=CreateLight() RotateEntity light,0,0,90 ; GLOBAL -------------------------------------------------------------------------------------- Global centercone Global moinsel Global x# Global y# Global z# ;_______________________________________________________________________________________________ Type kubus Field x Field y Field Z Field Rot Field Blau Field Gruen Field alpha# End Type Loadposition() ;Handle----------------------------------------------------------------------------------------- centercone =CreatePivot() TurnEntity centercone,0,0,0 HideEntity centercone LRcone=CreateCone (16,True,centercone) TurnEntity LRcone,90,0,0 EntityColor LRcone,0,0,255 PositionEntity LRcone,0,0,4 EntityAlpha LRcone,.8 ScaleEntity LRcone,.5,.5,.5 UDcone=CreateCone (16,True,centercone) TurnEntity UDcone,0,0,0 EntityColor UDcone,255,0,0 PositionEntity UDcone,0,4,0 EntityAlpha UDcone,.8 ScaleEntity UDcone,.5,.5,.5 FBcone=CreateCone (16,True,centercone) TurnEntity FBcone,0,0,-90 EntityColor FBcone,0,255,0 PositionEntity FBcone,4,0,0 EntityAlpha FBcone,.8 ScaleEntity FBcone,.5,.5,.5 ;------------------------------------------------------------------------------------------------MAINLOOP=========================== While Not KeyDown( 1 ) ;----------------------------------------------------------- Esc to end cammode() If MouseHit(1)=True Then Anwahl() ;-----------------------------Left MouseButton to select cube Moveit() If KeyHit(59)=True Then SavePosition() ;------------------------------Press F1 to save RenderWorld ;Display ----------------------- Show Coordinates If moinsel<>0 Text 0,40,"X: "+EntityX(moinsel) Text 0,60,"Y: "+EntityY(moinsel) Text 0,80,"Z: "+EntityZ(moinsel) EndIf ;-------------------------------- Flip Wend End ;--------------------------------------------------------------------------------------------------MAINLOOP========================= Function Cammode();---------------------------------------------------------------------- Cameramovement Keypad If KeyDown( 205 )=True Then TurnEntity camera,0,-1,0 If KeyDown( 203 )=True Then TurnEntity camera,0,1,0 If KeyDown( 208 )=True Then MoveEntity camera,0,0,-0.05 If KeyDown( 200 )=True Then MoveEntity camera,0,0,0.05 End Function ;-------------------------------------------------------------------------------------------------- Function SavePosition() cfgfile=WriteFile("Supergrabber.dat") For moin.kubus=Each kubus WriteFloat(cfgfile, moin\x#) WriteFloat(cfgfile, moin\y#) WriteFloat(cfgfile, moin\z#) Next CloseFile(cfgfile) End Function Function Loadposition() If FileType("Supergrabber.dat")=1 Then ;-------------------------------------------------------- Check if file exist cfgfile=ReadFile("Supergrabber.dat") ;-------------------------------------------------------- Load File For a = 1 To 10 moin.kubus = New kubus moin\x=ReadFloat(cfgfile) moin\y=ReadFloat(cfgfile) moin\z=ReadFloat(cfgfile) moin\Rot=Rnd(0,255) ;------------------------------------------------------- Random Color and alpha moin\Blau=Rnd(0,255) moin\Gruen=Rnd(0,255) moin\alpha#=Rnd(0.2,1) Wuerfel= CreateCube () PositionEntity Wuerfel,moin\x,moin\y,moin\z EntityColor Wuerfel,moin\Rot,moin\Gruen,moin\Blau EntityAlpha Wuerfel,moin\alpha# EntityPickMode Wuerfel,3 Next CloseFile(cfgfile) Else ;-------------------------------------------------------- If no such File - create random cubes For a = 1 To 10 moin.kubus = New kubus moin\x=Rnd(-10,10) moin\y=Rnd(-10,10) moin\z=Rnd(-10,10) moin\Rot=Rnd(0,255) ;------------------------------------------------------- Random Color and alpha moin\Blau=Rnd(0,255) moin\Gruen=Rnd(0,255) moin\alpha#=Rnd(0.2,1) wuerfel= CreateCube () PositionEntity Wuerfel,moin\x,moin\y,moin\z EntityColor Wuerfel,moin\Rot,moin\Gruen,moin\Blau EntityAlpha Wuerfel,moin\alpha# EntityPickMode Wuerfel,3 Next EndIf End Function Function anwahl() moinsel= CameraPick(camera,MouseX(),MouseY()) ;------------------------------------------------------------------------------ Displays the handle, if a cube is select If PickedEntity()<>0 Then PositionEntity centercone,EntityX(moinsel),EntityY(moinsel),EntityZ(moinsel) ShowEntity centercone Else HideEntity centercone EndIf End Function Function moveit() If PickedEntity()<>0 ;Then ;------------------------------------------------------------------------------- Numpad to move cube If KeyDown(72)=True Then TranslateEntity moinsel,0,0,.5 If KeyDown(80)=True Then TranslateEntity moinsel,0,0,-.5 If KeyDown(75)=True Then TranslateEntity moinsel,-.5,0,0 If KeyDown(77)=True Then TranslateEntity moinsel,.5,0,0 If KeyDown(78)=True Then TranslateEntity moinsel,0,.5,0 ;------------------------------------------------------------------------------- +/- = Up/Down If KeyDown(74)=True Then TranslateEntity moinsel,0,-.5,0 If KeyDown(76)=True Then TurnEntity moinsel,0,.5,0 ;------------------------------------------------------------------------------- Numpad 5 to rotate cube If KeyDown(199)=True Then RotateEntity moinsel,0,0,0 ;------------------------------------------------------------------------------- Position the handle PositionEntity centercone,EntityX(moinsel),EntityY(moinsel),EntityZ(moinsel) ShowEntity centercone EndIf End Function.