Have added some objects to pick up and try and put on the plank.
use mouse wheel to move objects in and out when holding down left mouse button.
Rem Project: physeesaw1
Rem Created: 10/08/2006 12:58:16
Rem ***** Main Source File *****
sync on
sync rate 60
autocam off
phy enable debug
phy start
make object box 1, 80, 1, 80
phy make rigid body static box 1
make object sphere 2, 5
position object 2, 0, 5, 0
phy make rigid body static sphere 2
make object box 3, 30, 1, 10
position object 3, 0, 10, 0
phy make rigid body dynamic box 3
phy make revolute joint 1, 2, 3, 0, 0, 1, 0, 10, 0
make object sphere 4, 5
position object 4, -10, 30, 0
phy make rigid body dynamic sphere 4
position camera 0, 15, -40
make object cube 5,5
position object 5,-10,0.1,10
phy make rigid body dynamic box 5
make object cube 6,5
position object 6,0,0.1,10
phy make rigid body dynamic box 6
make object cube 7,5
position object 7,10,0.1,10
phy make rigid body dynamic box 7
do
gosub _drag_object
phy update
sync
loop
_drag_object:
if mouseclick()=0 then pickmode=0 : cursorobj=0
mclick=mouseclick()
if mclick>0
if pickmode=0
cursorobj=pick object(mousex(),mousey(),5,7)
text 0,0,"object = "+str$(cursorobj):sync
if cursorobj>0
pickmode=mclick
pickdistance#=get pick distance()
pickfromx#=get pick vector x()
pickfromy#=get pick vector y()
pickfromz#=get pick vector z()
if pickmode=1
objx#=object position x(cursorobj)
objy#=object position y(cursorobj)
objz#=object position z(cursorobj)
else
objx#=object angle x(cursorobj)
objy#=object angle y(cursorobj)
objz#=object angle z(cursorobj)
pickdiffx#=mousemovey() : pickdiffx#=0
pickdiffy#=mousemovex() : pickdiffy#=0
endif
else
highlightobj=0
endif
endif
if pickmode>0
if pickmode=1
pick screen mousex(),mousey(),pickdistance#+(mousez()/128)
picktox#=get pick vector x()
picktoy#=get pick vector y()
picktoz#=get pick vector z()
pickdiffx#=picktox#-pickfromx#
pickdiffy#=picktoy#-pickfromy#
pickdiffz#=picktoz#-pickfromz#
grid=0
if grid=1
pickdiffx#=int(pickdiffx#/5)*5
pickdiffy#=int(pickdiffy#/5)*5
pickdiffz#=int(pickdiffz#/5)*5
endif
phy set rigid body position cursorobj,objx#+pickdiffx#,objy#+pickdiffy#,objz#+pickdiffz#
`phy set rigid body linear velocity cursorobj,objx#+pickdiffx#,objy#+pickdiffy#,objz#+pickdiffz#
`position object cursorobj,objx#+pickdiffx#,objy#+pickdiffy#,objz#+pickdiffz#
else
pickdiffx#=pickdiffx#+mousemovey()
pickdiffy#=pickdiffy#+mousemovex()
grid=0
if grid=1
tpickdiffx#=int(pickdiffx#/22.5)*22.5
tpickdiffy#=int(pickdiffy#/22.5)*22.5
else
tpickdiffx#=pickdiffx#
tpickdiffy#=pickdiffy#
endif
`rotate object cursorobj,wrapvalue(objx#-tpickdiffx#),wrapvalue(objy#-tpickdiffy#),objz#
rotate camera 0,wrapvalue(objx#-tpickdiffx#),wrapvalue(objy#-tpickdiffy#),objz#
endif
endif
endif
return
I'm not getting you down am I, Ho Look! another fancy Door?