本文共 633 字,大约阅读时间需要 2 分钟。
上篇说道要想将手臂固定在机器人身体上,而且手臂还能转动,简单的办法是使用物理关节.但这不是只有这种办法.用关节固定物体有时候不能满足需要,这时必须自己动手写代码处理,后面会介绍另一种固定的方法.
在SpriteBuilder中打开Robot.cc,从控件库拖动一个Physics Pivot Joint到根节点上.
在SpriteBuilder中有3种关节,分别为Pivot关节,Distance关节和Spring关节.这里只用到第一种,后两种以后有机会再介绍.调整Pivot关节位置,放到机器人身体的前上部,设置关节Body A为body,Body B为arm.然后将手臂拖拽到关节上,最后类似如下效果:
打开关节的Limit属性,我们这里限制关节的转动范围在前进方向180°内,也就是Min和Max分别设置值为-90和90:
其他属性保持不变.现在运行App,会发现关节固定在了身体上,但手臂会软软的垂下来,冲着地面.我们希望的效果是在开始时手臂与地面保持平行状态.为了达到这个效果,我们点击arm对象,在其物理属性中将Affected by gravity中的钩去掉:
这样手臂不会被引力所影响了,会”飘”在空中了.
我们还需要设置Robot的自定义类为Robot,body的代码连结为_body;
arm的自定义类为Arm,代码连结为_arm.最后需要注意的是,所有添加到某个阶段的关节都自动成为该节点Joints对象的子节点,注意不是其根节点的子节点.