Pulling the camera back, i've changed my method to not moving the camera for now, as I'd have to re-write the ninja rope line code, as it doesn't cope with camera movement yet

. I tried once before to re-write the line code to accommodate it, was successful at finding one way of how
not to do it

.
Change the value of CameraDistance#, now to change how far away you want the zoom 1000 = double the distance it was last time. The pick screen command was slightly off so i had to divide the distance given by 4, no idea why.. but ah well

.
`Sphere
Make object sphere 1,50
Position camera 0,0,0
color object 1,rgb(50,50,150)
`Setup Camera
Point camera 0,0,1000
Position object 1,0,0,1000
`Background Colour
color backdrop rgb(0,0,0)
`sync rate
sync on
sync rate 60
`Variables
G# = 9.81 //Gravity
friction#=0.2
SpeedOfSwing#=10
VelX#=0
VelY#=0
RopePlaced=-1
CameraDistance#=1000
ink rgb(100,100,250),rgb(0,0,0)
autocam off
Do
if spacekey()=1 then position object 1,0,0,CameraDistance# : RopePlaced=-1
If L#>0
NewAngle# = MaxAngle# * sin(Sqrt(G#/L#)*t#)
else
NewAngle#=0
endif
if RopePlaced>0
OldObjPosX#=object position x(1)
OldObjPosY#=object position y(1)
position object 1,camera position x()-dx#,camera position y()-dy#,CameraDistance#
if xd>0
rotate object 1,90,0,NewAngle#
else
rotate object 1,90,0,0-NewAngle#
endif
move object 1,(Distance#)
`Draw Rope
line NewMouseX,NewMouseY,OBJECT SCREEN X(1),OBJECT SCREEN y(1)
if upkey()=1 and Distance#>0 then Distance#=Distance#-2.0
if downkey()=1 and Distance#<300 then Distance#=Distance#+2.0
endif
Gosub HandleMouse
//Total formula
//MaxAngle# * sin(Sqrt(G#/L#)*t#)
total#=MaxAngle# * sin(Sqrt(G#/L#)*t#)
set cursor 25,25 : print "MaxAngle#: ",MaxAngle#
set cursor 25,50 : print "Total: ", total#
set cursor 25,75 : print "sin(Sqrt(G#/L#)*t#): ",(sin(Sqrt(G#/L#)*t#))
Set cursor 25,100 : print "Sqrt(G#/L#): ",Sqrt(G#/L#)
set cursor 25,125 : print "t#: ",t#
set cursor 25,150 : print ""
set cursor 25,175 : print ""
Sync
Loop
HandleMouse:
If Mouseclick()=1
t#=t#+SpeedOfSwing#
inc RopePlaced,1
if RopePlaced<=2
pick screen NewMouseX,NewMouseY,CameraDistance#+(CameraDistance#/5)
NewMouseX=mousex()
NewMouseY=mousey()
dx#=camera position x()-get pick vector x()
dy#=camera position y()-get pick vector y()
dz#=camera position z()-get pick vector z()
`Distance from mouse to sphere
xd = dx#-object position x(1)
yd = dy#-object position y(1)
Distance# = sqrt((xd^2)+(yd^2))
Angle#=atanfull(dx#-object position x(1),dy#-object position y(1))
L# = Distance# //Length of Rope
t#=90 /(Sqrt(G#/(L#)))
if dx#<object position x(1)
MaxAngle#=180+Angle#
NewAngle#=MaxAngle#
else
MaxAngle#=180-Angle#
NewAngle#=MaxAngle#
endif
endif
else
if RopePlaced>0 then RopePlaced=0
endif
if RopePlaced>0
`Getting the angle back to 180
if MaxAngle#>0 then dec MaxAngle#,friction#
speedx#=((OldObjPosX#-object position x(1)))
speedy#=((OldObjPosY#-object position y(1)))
endif
if RopePlaced=0
speedy#=speedy#+(G#/50)
position object 1,object position x(1)-speedx#,object position y(1)-speedy#,object position z(1)
endif
return
Give me the txt file, along with how you built the txt file lol, meaning how the numbers in it are put together. Then it'll be no problem to make the level from it.
I'd lay it out as follows:
BoxPosX
BoxPosY
BoxSizeX
BoxSizeY
-------
Rotation can be added if you wish, and anything else you can think off, putting the information on new lines just makes it easier for me.
I'll add in the thrust tomorrow, as i need to finish of making a 3d model, (I'm currently just creating at least one 3d model per day

)
One bug i noticed which i overlooked before, the flashing off the ball when you click really fast. Will have to look at that tomorrow and give a go at fixing it as well.
--Side note--
Referring to your back, this may help or it might not be for you but have you ever heard of the alexander technique? It might be something you may want to look into

.