看API没看到有什么方法可以让它往复在同一个轴上移动,我使用查询的方法判断它是否平移到最大值,如果到了则改变马达速度方向,关键代码如上。
-- 创建一个移动关节的定义
local prismaticJointDef = b2PrismaticJointDef()
-- 移动的方向,用矢量来表示可以移动的方向,零向量(0, 0)为任意方向
-- 初始化关节
prismaticJointDef:Initialize(self.groundBody, rotBody, rotBody:GetWorldCenter(), b2Vec2(1, 0))
prismaticJointDef.lowerTranslation = -10.0
prismaticJointDef.upperTranslation = 10.0
prismaticJointDef.enableLimit = true --开户限制 false--
prismaticJointDef.collideConnected = false
prismaticJointDef.enableMotor = true
prismaticJointDef.maxMotorForce = 1000
prismaticJointDef.motorSpeed = -2
-- 创建关节
local prismaticJoint = tolua.cast(self.world:CreateJoint(prismaticJointDef), "b2PrismaticJoint")
self.m_prismaticJoint = prismaticJoint
table.insert(self.prismaticJoints,prismaticJoint)
--