登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

查看: 114|回复: 6

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

[复制链接]

156

主题

346

帖子

880

金钱

手工艺人

发表于 2018-1-11 11:48:31 | 显示全部楼层 |阅读模式

        

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

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

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

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

        

        打开SpriteBuilder,将其拖入arm中,使其成为arm的子节点,这样,它自动会跟着父节点旋转,不需要写额外的代码了.vcD4NCjxwPsno1sPG5LT6wuvBrL3hw/uzxs6qX2Rhc2gsxKzIz86qsru/ybz7LjwvcD4NCjxwPrvYtb1YY29kZSzU2lJvYm90Lm3W0MztvNPKtcD9seTBvzo8L3A+DQo8cHJlIGNsYXNzPQ=="brush:java;">
CCNode *_dash;</pre>

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

        

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

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

[Java] 查看源文件 复制代码
-(void)moveArmFinish;
-(void)moveArmBefore;

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

[Java] 查看源文件 复制代码
-(void)moveArmFinish{
    _dash.visible = NO;
}

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

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

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

        

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

        


                                               

16

主题

7072

帖子

989

金钱

手工艺人

发表于 2018-1-11 12:00:51 | 显示全部楼层
code4app好的代码demo真的很多,谢谢啦~

20

主题

7050

帖子

2258

金钱

手工艺人

发表于 2018-1-11 12:11:56 | 显示全部楼层
内容很好,棒棒哒

23

主题

7058

帖子

1054

金钱

iOS大神

Rank: 6Rank: 6

分享大神

发表于 2018-1-11 12:19:38 | 显示全部楼层
感谢分享,楼主V5~

20

主题

7076

帖子

2215

金钱

手工艺人

发表于 2018-1-11 12:26:21 | 显示全部楼层
写的真的很不错

14

主题

7034

帖子

1375

金钱

手工艺人

发表于 2018-1-11 12:39:40 | 显示全部楼层
内容很好,棒棒哒

0

主题

7028

帖子

-519

金钱

限制会员

发表于 2018-1-11 12:56:39 | 显示全部楼层
感谢分享,code4app有你更精彩
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

每日头条

通过邮件订阅最新 Code4App 信息
上一条 /4 下一条

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表