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

时间:2022-07-24 08:05:38

游戏特效部分就先这样了,因为毕竟是Lite版本,而且是第一个App,所以咱们把主要精力放在游戏可玩逻辑上吧(虽然已经厚颜无耻的加了不少特效了).

说句题外话:游戏美工是独立开发者不可逾越的鸿沟,是无法治愈之痛.本猫三脚猫的美工素养暂时也只能实现这样了.这个不仅仅要恶补制图工具的使用技术,而且还需要一点点美学上的天赋吧.我看过网上有位国外的很热爱独立开发App游戏的仁兄,也在自己的blog上写开发的心路,开始前几个作品画的那叫一个丑啊…但是人家不放弃,后来越画越好了.虽说不能和专业人士相比,但事在人为,不是吗 ;)

好吧,言归正传.下面要添加的大致有3个功能:

1.选择一个选手,就是赌他最后跑赢

2.然后玩家可以输入赌注的金额

3.最后如果他是冠军则赢钱,否则输钱.

很简单,不是吗?下面从第1项内容开始依次实现.

首先是选择选手的功能,因为选手大头贴本身就比较小,手指比较难点中.所以我把需求稍微改一下,只要点中选手所在的赛道,就是选择了该选手.我们在GameScene.m中添加一个数组:

NSMutableArray *_trackRects;

里面存放的是每条赛道矩形框的Rect结构,因为还好每条赛道是正规长方形,所以可以很简单的用Cocos2D的内置函数判断玩家手指是否点在对应的矩形框里.

我们接下来自然是要初始化每个赛道矩形的Rect结构,添加如下方法:

-(void)initTrackRects{
    NSInteger trackHeight = _viewSize.height/PlayerCount;
    NSInteger trackWidth = _viewSize.width;
    CGRect trackRect;
    for (int i = 0; i < PlayerCount; i++) {
        trackRect = CGRectMake(0, i*trackHeight, trackWidth, trackHeight);
        [_trackRects addObject:[NSValue valueWithCGRect:trackRect]];
        //CCLOG(@"%d:rect is %@",i,NSStringFromCGRect(trackRect));
    }
}

代码很简单,每条赛道的长和宽都是不变的,x坐标也都是不变的,都是0.只有y坐标是规律变化的,就是i*trackHeight的关系.因为NSArray里是不能直接存标量的,所以要转换为对象再存入数组.

不知大家是否看出了点问题,就是这里赛道的编号正好和实际跑道上的编号是反过来的.就是_trackRects[0]对应的是实际的8号赛道的坐标.这个在后面再修正.