(NO.00003)iOS游戏简单的机器人投射游戏成形记(十八)

时间:2021-04-28 19:46:13

在游戏中制作手臂瞄准线,也就是所谓的辅助延长线.玩台球游戏的童鞋应该可以了解.

按道理来说,延长线是一个物理实体,遇到物理刚体应该会发生反弹行为,这个符合实际游戏逻辑.

但是这里为了简单,只是做一条”傻傻地”线而已,上面憧憬中的反弹延长线有机会以后游戏中再来实现.

用Ai绘制一条长度适合的虚线:

(NO.00003)iOS游戏简单的机器人投射游戏成形记(十八)

打开SpriteBuilder,将其拖入arm中,使其成为arm的子节点,这样,它自动会跟着父节点旋转,不需要写额外的代码了.

设置其代码连结名称为_dash,默认为不可见.

回到Xcode,在Robot.m中添加实例变量:

CCNode *_dash;

有童鞋可能感到不解,dash是arm的子节点,为什么你在Robot类里添加_dash实例变量呢?因为SpriteBuilder中我们选择_dash的类型是Doc root var哦:

(NO.00003)iOS游戏简单的机器人投射游戏成形记(十八)

我们延长线的行为如下,中有当选中一个机器人,并且旋转arm时才显示延长线,当触摸结束后延长线不显示.

因为我们有2种方式来旋转arm所以需要在Robot中和GameScene中的触摸moved和end方法中开启和关闭延长线,在Robot.h接口中新建2个方法:

-(void)moveArmFinish;
-(void)moveArmBefore;

在Robot.m中实现两个方法,很简单:

-(void)moveArmFinish{
    _dash.visible = NO;
}

-(void)moveArmBefore{
    _dash.visible = YES;
}

接下来只要在需要显示和关闭显示延长线的地方调用方法即可,这个就不在贴出了.

编译,运行游戏,效果如下:

(NO.00003)iOS游戏简单的机器人投射游戏成形记(十八)

大家顺便可以看到该Level中右边篮筐销魂的走位,这个不是用代码Action写的,而是仅仅用SpriteBuilder自身的动画完成的,没有写一行代码,我们下一篇就来看看怎么实现它 ;)