您的位置:首页 > 移动开发 > IOS开发

(NO.00001)iOS游戏SpeedBoy Lite成形记(六)

2015-10-20 17:27 369 查看
为了能让玩家可以在比赛结束时清楚看到每位选手的成绩,我们需要在GameScene场景的track对象中添加一些新的元素.

在SpriteBuilder中打开GameScene.ccb,创建1个标签对象,使其成为track的子对象.注意不是GameScene根节点的子对象哦.

修改该标签的位置使其差不多位于第1赛道的后半场跑道中,比如我将其放在相对于父对象的(60%,3%)位置上.按照个人喜好修改字体和文字大小.

觉得比较满意时,将该label复制7次,同样是它们成为track的子对象.这样track一共包含了8个标签对象.

修改新添加标签的位置,按照1/8的倍数累加,别忘了最后要加上3%,最后的效果如下:



给这8个标签设置代码链接,分别为:_labelTrack1至_labelTrack8.

因为链接位置是Doc root var,所以它们都成为GameScene的实例对象而不是track的实例变量.再说我们也没有创建Track类.

下面回到Xcode中,打开GameScene.m新增对应的实例变量:

CCLabelTTF *_labelTrack1;
CCLabelTTF *_labelTrack2;
CCLabelTTF *_labelTrack3;
CCLabelTTF *_labelTrack4;
CCLabelTTF *_labelTrack5;
CCLabelTTF *_labelTrack6;
CCLabelTTF *_labelTrack7;
CCLabelTTF *_labelTrack8;
NSMutableArray *_labelArray;


顺便说一句,这里只有8个变量,所以手动添加还过得去.如果在SpriteBuilder中建立了成百上千的变量,还在这一个个手动添加就太傻了.

这时,一种办法是我们可以使这些变量成为某一自定义类的实例,然后在GameScene初始化方法中用Obj-C类的比较方法遍历其所有子对象,从而将所有符合该自定义类的对象过滤出来.以后有机会可以展示一下,这里就手动添加吧.

在GameScene的didLoadFromCCB方法中将这些标签添加到数组中去:

[_labelArray addObject:_labelTrack1];
[_labelArray addObject:_labelTrack2];
[_labelArray addObject:_labelTrack3];
[_labelArray addObject:_labelTrack4];
[_labelArray addObject:_labelTrack5];
[_labelArray addObject:_labelTrack6];
[_labelArray addObject:_labelTrack7];
[_labelArray addObject:_labelTrack8];

[self invisibleAllLabels];


因为这些标签应该只在比赛结束时显示出来,所以游戏开始和每次比赛开始需要将其设为不可见,所以单独写一个方法干这事:

-(void)invisibleAllLabels{
for (CCLabelTTF *label in _labelArray) {
label.visible = NO;
}
}


下面我们要改动matchRun方法了,待会见 ;)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 游戏