(NO.00001)iOS游戏SpeedBoy Lite成形记(二)
打开SpriteBuilder生成的Xcode项目文件,首先在MainScene添加play回调函数:
-(void)play{
CCScene *gameScene = [CCBReader loadAsScene:@"GameScene"];
[[CCDirector sharedDirector]replaceScene:gameScene];
}
这样玩家从游戏主界面点击play按钮就可以进入游戏界面.
下面新建一个GameScene类,继承自CCNode.
我们在GameScene初始化中需要做的一件重要的事就是定位每个玩家的初始位置,因为该功能需要在每次比赛前重复调用,所以单独放在一个方法中:
-(void)initPlayPositon{
NSInteger i = 0;
for (CCSprite *player in _players) {
player.positionType = CCPositionTypeNormalized;
player.position = ccp(0.05,1.0-((1.0/PlayerCount)*i));
player.color = [CCColor yellowColor];
player.anchorPoint = ccp(0, 1);
i++;
}
}
注意上面将位置类型设置为百分比模式,所以之后所有和位置相关的改变都是以百分比为基础的.我们将每个玩家的位置放置在GameScene视图width的5%处,高度则根据人数平均取height的值,因为是从上往下排列玩家,所以第一个玩家应该在height的最高处,所以前面要用1减去计算y值.
以上代码结果如下:
为啥有2种不同大头贴呢?下回分解.
(NO.00001)iOS游戏SpeedBoy Lite成形记(二)的更多相关文章
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十八):增加排行榜功能
游戏大体上基本也就完成了,还差一个排行榜.否则如何激励各位选手创造新纪录呢? 排行榜功能也没什么难的,不过需要一点点排序的算法上的考虑. 这里我们把排行榜记录数据和排序都放在GameState类中,在 ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十七)
切换回Xcode,在GameScene.m中添加新的实例变量:_winLayer. 接下来在第一个选手到达终点时,我们可以完成选手胜利的动画特效了. 首先,在GameScene.m中添加一个新方法pl ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十四)
我们回到Xcode,打开GameScene.m,首先要添加实例变量: CCNode *_trackLine; 为了根据选中的赛道更新_trackLine的位置,我们添加一个显示方法: -(void)s ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十三)
现在还有一个视觉上的问题:玩家每次在游戏开始前选择某一赛道时,无法直观的看到所选的是哪条赛道.只能通过界面上方的gambleLabel中的文字非直观的看到.我们现在来完善它! 为了能让玩家清楚地看到, ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十二)
自己的游戏自己更需要多玩,这样才能首先发现不足的地方.所以本猫到现在已经忍一个地方很久了,就是弹出moneyLayer后每次都要输入数字才能关闭,这多少让人不爽.于是本篇我们就修正这个小小的不便. 首 ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十一)
现在游戏中如果钱用光了赌场也是不管的,所以我们要加上Game Over的逻辑. 出现游戏结束条件很简单,就是GameState的totalMoney <= 0.而在游戏结束时我们要做些什么呢?有 ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十)
下面修改最为关键的matchRun方法里的代码: CCActionCallBlock *blk = [CCActionCallBlock actionWithBlock:^{ _finishedCou ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十九):增加排行榜功能2
接下来回到Xcode中,首先在PopupLayer.m中添加justClose方法: -(void)justClose{ [self.gameScene removePopup]; } 然后在Game ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十六)
到目前为止,选手跑到终点时仿佛没什么激动人心的事情发生呢?貌似需要添加一些胜利的特效啊! 前面说好的不添加特效,只完成游戏功能的诺言呢? T T 我们主要想实现这样一个特效效果: 1.胜利的玩家突出显 ...
随机推荐
- CRM客户关系管理系统(八)
第八章.只读字段处理和filter_horizontal的实现 8.1.只读字段的处理 (1)kingadmin/admin_base.py # kingadmin/admin_base.py cl ...
- Bootstrap3 表格-基本表格
为任意 <table> 标签添加 .table 类可以为其赋予基本的样式 - 少量的内补(padding)和水平方向的分隔线.这种方式看起来很多余!?但是我们觉得,表格元素使用的很广泛,如 ...
- [Matlab+C/C++] 读写二进制文件
introduction 因为Matlab操作简单.方便,它被应用于很多领域:音频处理,图像处理,数值计算等.尽管MATLAB容易操作,但受限于他的语言解释机制,MATLAB的执行速度通常较低.C/C ...
- 虚拟机克隆,并设置新的ip
6.1克隆新的虚拟机 选中某个虚拟机-à右键à管理à克隆 选择下一步 选择下一步 点击完成 6.2修改主机名 [root@hadoop3 ~]# vim/etc/sysconfig/network 将 ...
- Bootstrap3 代码-内联代码
通过 <code> 标签包裹内联样式的代码片段. For example, <section> should be wrapped as inline. For example ...
- android面试手册
1. Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚 ...
- Android中ViewFlipper的使用详解
说到android的左右滑动效果我们可以说是在每个应用上面都可以看到这样的效果,不管是微博,还是QQ等. 实现左右滑动的方式很多,有ViewPager(不过这个和需要android-support-v ...
- JAR、WAR、EAR的使用和区别
最近接触这几个词较多,停下来总结总结它们的区别和联系,更好的深刻理解 Jar.war.EAR.在文件结构上,三者并没有什么不同,它们都采用zip或jar档案文件压缩格式.但是它们的使用目的有所区别: ...
- Volley的基本使用
Volley的基本使用 导入jar包 导入成功 源码 GET请求下载地址:http://download.csdn.net/detail/q4878802/9053969 POST请求下载地址:htt ...
- CentOS下将php和mysql命令加入到环境变量中的几种方法
Linux CentOS配置LAPM环境时,为了方便,将php和mysql命令加到系统环境命令,下面我们记录几种在linux下将php和mysql加入到环境变量中的方法. 如果在没有添加到环境变量之前 ...