Quote: "I was considering making a moving platform using static, but now I will definitely not."
i can agree, this physics system is not easy to handle because of unexpected results.
in this exapmle i used a platform with a mousejoint and set the target only.
//agk 2.0.15d
//falling box at platform with physics
SetVirtualResolution(100,100)
SetPhysicsScale(0.025)
SetPhysicsDebugOn()
spr=createsprite(0)
SetSpritePositionByOffset(spr,50,25)
SetSpritePhysicsOn(spr,2)
platform=createsprite(0)
setspritesize(platform,25,1)
SetSpritePositionByOffset(platform,50,50)
SetSpritePhysicsOn(platform,2)
SetSpritePhysicsCanRotate(platform,0)
platformJoint=CreateMouseJoint(platform, GetSpriteXByOffset(platform), GetSpriteYByOffset(platform), 1000 )
ground=createsprite(0)
setspritesize(ground,100,1)
SetSpritePosition(ground,0,99)
SetSpritePhysicsOn(ground,1)
x as float
x=50
w as float
w=0.2
do
if GetPointerPressed() then exit
x=x+w
if x>75 and w>0 then w=-w
if x<25 and w<0 then w=-w
print("Platform x:"+str(x,1))
SetJointMouseTarget(platformJoint,x,50)
print("List:")
List(spr)
List(platform)
List(ground)
sync()
loop
end
function List(spr)
c=GetSpriteFirstContact(spr)
do
if c=0 then exit
spr2=GetSpriteContactSpriteID2()
if spr2<>0
print(str(spr)+" hit "+str(spr2))
endif
c=GetSpriteNextContact()
loop
endfunction
AGK (Steam) V2.0.15d : Windows 10 Pro 64 Bit : AMD (15.201.1151.0) Radeon R7 265 : Mac mini OS X 10.10 (Yosemite)