(NO.00003)iOS游戏简单的机器人投射游戏成形记(十)
2015-11-10 21:56
232 查看
打开Arm.h,在其接口中添加一个新方法:
接下来在Arm.m中实现该方法:
该方法最终调用MainScene中的shoot方法,在这之前armShoot取得子弹的弹道轨迹.弹道由起点和终点确定,因为子弹的轨迹由物理引擎决定,所以最终实际射出的是一道抛物线.
前面说过Arm的旋转施力点在手臂的中线与手的焦点,同样,子弹射出的轨迹也和Arm的中线重合:
那么在什么时候发射子弹呢?有很多种选择,比如在屏幕上创建一个发射按钮,点击时发射子弹.
这里采用较简单的方式:在玩家触摸结束时发射子弹:
在ArmStatic类中做同样操作.这里是个不好的例子,因为有重复代码.如果编写程序中也有各种罪过,那么代码重复就是”死罪”!
不过这里先判”无罪”,因为本猫还要重构,虽然你们不一定看得到 ;)
编译运行,发射效果如下:
请先忽略中间那些方块和篮筐,别急!马上就要说到它们了 ;)
-(void)armShoot;
接下来在Arm.m中实现该方法:
-(void)armShoot{ CGPoint startPoint = [self convertToWorldSpace:ccp(0, 5)]; CGPoint endPoint = [self convertToWorldSpace:ccp(20, 5)]; [_mainScene shoot:startPoint to:endPoint]; }
该方法最终调用MainScene中的shoot方法,在这之前armShoot取得子弹的弹道轨迹.弹道由起点和终点确定,因为子弹的轨迹由物理引擎决定,所以最终实际射出的是一道抛物线.
前面说过Arm的旋转施力点在手臂的中线与手的焦点,同样,子弹射出的轨迹也和Arm的中线重合:
那么在什么时候发射子弹呢?有很多种选择,比如在屏幕上创建一个发射按钮,点击时发射子弹.
这里采用较简单的方式:在玩家触摸结束时发射子弹:
-(void)touchEnded:(CCTouch *)touch withEvent:(CCTouchEvent *)event{ [self armShoot]; }
在ArmStatic类中做同样操作.这里是个不好的例子,因为有重复代码.如果编写程序中也有各种罪过,那么代码重复就是”死罪”!
不过这里先判”无罪”,因为本猫还要重构,虽然你们不一定看得到 ;)
编译运行,发射效果如下:
请先忽略中间那些方块和篮筐,别急!马上就要说到它们了 ;)
相关文章推荐
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十)
- iOS开发消息篇—NSRunLoop
- 【iOS】duplicate symbols for architecture x86_64
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(九)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(九)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(九)
- 蓝懿ios 技术内容和心得交流分享 11.10
- iOS方法类:CGAffineTransform的使用大概
- iOS 中json数据用法
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(八)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(八)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(八)
- ios音频
- iOS第五周 第二天
- iOS-友盟页面统计
- iOS自学日记-第一天
- iOS:解决Xcode升级后插件失效问题
- iOS视图控制器<2>
- 升级ios9后RSA加密SecItemAdd出问题的解决方法
- iOS webservice