登录 立即注册
金钱:

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

查看: 179|回复: 6

(NO.00003)iOS游戏简单的机器人投射游戏成形记(五),大便不成形

[复制链接]

328

主题

667

帖子

2425

金钱

手工艺人

发表于 2018-1-11 14:40:59 | 显示全部楼层 |阅读模式

        

        上一篇我们建立了机器人物理对象,下面我们来看看对应的逻辑代码.

        进入Xcode,新建Robot和Arm类,分别继承于CCNode和CCSprite类.代码全部留空,后面再实现.

        我们再看一下这个机器人要如何与玩家交互.当玩家触碰到机器人手臂并且移动时,以关节为中心旋转手臂.因为前面在SpriteBuilder中限制了关节转动的范围,所以不用担心关节旋转到”奇怪”的角度上.

        

        首先在Arm.m的初始化方法中打开用户交互:vcD4NCjxwcmUgY2xhc3M9"brush:java;">
self.userInteractionEnabled = YES;</pre>

        在Arm类中新建实例变量_touchPoint:

[Java] 查看源文件 复制代码
#implementation Arm{
    CGPoint _touchPoint;
}

        添加触摸回调方法,首先是touchBegan:

[Java] 查看源文件 复制代码
-(void)touchBegan: (CCTouch *)touch withEvent: (CCTouchEvent *)event{
    CGPoint location = [[CCDirector sharedDirector] convertTouchToGL:touch];
    _touchPoint = location;
}

        这里保持第一次触摸时的位置用来和之后移动时的坐标相比较,从而判断选择的方向.

        然后是touchMoved方法:

[Java] 查看源文件 复制代码
-(void)touchMoved: (CCTouch *)touch withEvent: (CCTouchEvent *)event{
    CGPoint location = [[CCDirector sharedDirector] convertTouchToGL:touch];
    MoveDirection direction = armMoveDirectionDown;
    if (location.y > _touchPoint.y) {
        direction = armMoveDirectionUp;
    }else if(location.y < _touchPoint.y){
        direction = armMoveDirectionDown;
    }

    [self moveArm:direction];
}

        我们简单看看这个方法:取得触摸移动位置,用它和之前保存的位置相比较,只要判断y轴的值即可:如果大于之前的y值则表示向上旋转,否则表示向下旋转.最后根据旋转方向旋转手臂.这里旋转方向是一个枚举值,因为可能在其他类中也会使用,比如后面我们会看到触摸手臂旋转的一个大问题,需要改为触摸屏幕选择手臂.我们这里将其放在一个通用头文件里,新建一个Comm.h头文件,内容如下:

[Java] 查看源文件 复制代码
#ifndef ShootBall_Comm_h
#define ShootBall_Comm_h

typedef enum {
    armMoveDirectionUp,
    armMoveDirectionDown
}MoveDirection;

#endif

        然后在所有需要使用该枚举定义的类中包含该头文件即可.

        在下一篇里,我们将会看到上面代码中还未介绍的moveArm方法是如何实现的 ;)

        


                                               

23

主题

7171

帖子

1047

金钱

iOS大神

Rank: 6Rank: 6

分享大神

发表于 2018-1-11 14:43:08 | 显示全部楼层
写的真的很不错

16

主题

7203

帖子

1630

金钱

手工艺人

发表于 2018-1-11 14:47:05 | 显示全部楼层
感谢大神分享,必须顶!

15

主题

7167

帖子

1798

金钱

手工艺人

发表于 2018-1-11 14:49:48 | 显示全部楼层
相当不错,感谢无私分享精神!

0

主题

7164

帖子

-535

金钱

限制会员

发表于 2018-1-11 14:53:34 | 显示全部楼层
好好 学习了 确实不错

21

主题

7219

帖子

2770

金钱

手工艺人

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

21

主题

7187

帖子

2814

金钱

手工艺人

发表于 2018-1-11 15:09:43 | 显示全部楼层
支持,感谢,祝code4app越来越好~
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

每日头条

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

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

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