hmm, not finished but i had began an example with our code for test.
rem
rem AGK Application 108 19
rem MR
rem Landscape App
SetDisplayAspect( 16.0/9.0 )
SetVirtualresolution(100,100)
SetPhysicsDebugOn()
global speed
global bj
global fj
dim cBackF[10]
dim cFrontF[10]
global px#
global py#
px#=50
py#=50
CreateCar()
on=1
do
Print("hello car, use up/down keys")
UpdateCar()
Sync()
loop
end
function UpdateCar()
if GetDirectionY() > 0
if speed > -10
speed = speed -1
//if GetSpritePhysicsAngularVelocity(cback)> -100
//SetSpritePhysicsVelocity(cback,GetSpritePhysicsVelocityX(cback)-10,5)
SetJointMotorOn( bj, speed, 10000 )
SetJointMotorOn( fj, speed, 10000 )
//SetSpritePhysicsAngularVelocity(cback,-10)
//endif
//SetSpritePhysicsForce( cback, -1, 0, 0, 0 )
endif
elseif GetDirectionY() < 0
if speed < 10
speed = speed+1
SetJointMotorOn( bj, speed, 10000)
SetJointMotorOn( fj, speed, 10000 )
//if GetSpritePhysicsAngularVelocity(cback) < 100
//SetSpritePhysicsAngularVelocity(cback,10)
//SetSpritePhysicsVelocity(cback,GetSpritePhysicsVelocityX(cback)+10,5)
// endif
endif
endif
endfunction
function CreateCar()
if GetSpriteExists(cBody)= 1 then DeleteSprite(cBody)
cBody = CreateSprite(0)
SetSpriteSize(cBody,5,2)
setSpritePositionbyOffset(cBody,px#,py#)
SetSpritePhysicsOn(cBody,2)
if GetSpriteExists(cfront)= 1 then DeleteSprite(cfront)
cFront = CreateSprite(0)
SetSpriteSize(cFront,3,3)
SetSpritePositionByOffset(cFront,GetSpriteXbyOffset(cBody)+3.5,GetSpriteYByOffset(cBody)+2)
SetSpritePhysicsOn(cFront,2)
SetSpriteShape(cFront,1)
SetSpritePhysicsAngularDamping( cFront, 0.1 )
fj =CreateRevoluteJoint(cBody, cFront, GetSpriteXbyOffset(cBody)+3.5,GetSpriteYByOffset(cBody)+2, 0 )
if GetSpriteExists(cBack)= 1 then DeleteSprite(cBack)
cBack = CreateSprite(0)
SetSpriteSize(cBack,3,3)
SetSpritePositionByOffset(cBack,GetSpriteXbyOffset(cBody)-3.5,GetSpriteYByOffset(cBody)+2)
SetSpritePhysicsOn(cBack,2)
SetSpriteShape(cBack,1)
SetSpritePhysicsAngularDamping( cBack, 0.1 )
bj =CreateRevoluteJoint( cBody, cBack, GetSpriteXbyOffset(cBody)-3.5, GetSpriteYByOffset(cBody)+2,0)
SetSpritePhysicsMass(cbody,8)
SetSpritePhysicsMass(cfront,1)
SetSpritePhysicsMass(cback,1)
SetSpritePhysicsFriction( cBack, 1 )
sprb=createsprite(0)
setspritesize(sprb,100,10)
setspriteposition(sprb,0,90)
SetSpritePhysicsOn(sprb,1)
setspriteangle(sprb,25)
if 1=0 // <<<---
//???
for i = 1 to 10
cBackF[i] = CreateSprite(0)
SetSpriteSize(cBackF[i],1,1)
SetSpriteAngle(cBackF[i],36*i)
SetSpritePositionByOffset(cBackF[i],GetSpriteXByOffset(cBack),GetspriteYByOffset(cBack))
SetSpritePhysicsOn(cBackF[i],2)
MoveSprite(cBackF[i],2)
bb = CreateWeldJoint(cBack,cBackF[i],GetSpriteXbyOffset(cBack),GetSpriteYbyOffset(cBack),1)
next i
for i = 1 to 10
cFrontF[i] = CreateSprite(0)
SetSpriteSize(cFrontF[i],1,1)
SetSpriteAngle(cFrontF[i],36*i)
SetSpritePositionByOffset(cFrontF[i],GetSpriteXByOffset(cFront),GetspriteYByOffset(cFront))
SetSpritePhysicsOn(cFrontF[i],2)
MoveSprite(cFrontF[i],2)
bb = CreateWeldJoint(cFront,cfrontF[i],GetSpriteXbyOffset(cFront),GetSpriteYbyOffset(cFront),0)
next i
endif
endfunction
function MoveSprite(spr,x)
//???
endfunction
AGK 108 (B)19 : Windows 8.1 Pro 64 Bit : AMD Radeon HD 6670