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

时间:2022-02-22 15:15:11

之前的10篇内容主要实现了选手从起点移动至终点的动作,比较随机的模拟了选手的速度变化,另外完成了选手到达终点时该做的事情.

接下来的几篇中我们进一步完善SpeedBoy Lite项目,使它真正成为一个可玩的小游戏.

首先添加几个新的人物大头像,好歹也是8条赛道,别老是8胞胎似得一起跑,起码人物要区分开.于是祭出Ai,在新加6个人物头像,如下:

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

全部本猫手绘出来的,手确实蛮累的 ;)

下面依次将新画的6副大头贴拖入SpriteBuilder,发布资源.然后修改player初始化的代码如下:

Player *player;
    for (int i = 0; i < PlayerCount; i++) {
        NSString *playerName = [NSString stringWithFormat:@"Player%d",i+1];
        player = [[Player alloc]initWithName:playerName Number:i+1 andFrameNumber:i+1];
        [_track addChild:player];
        [_players addObject:player];
    }

运行App看看效果:

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

起码可以区分开选手了,请先忽略图片最上一行标签文字,后面自有分晓.

下面再增加一些跑步的特效,实现选手向前进方向不断前倾身体的动作,在matchRun方法中增加以下内容:

CCActionSkewTo *skew = [CCActionSkewTo actionWithDuration:0.5 skewX:10 skewY:0];
        CCActionSkewTo *skewReverse = [CCActionSkewTo actionWithDuration:0.5 skewX:0 skewY:0];
        CCActionSequence *seqSkew = [CCActionSequence actionWithArray:@[skew,skewReverse]];
        CCActionRepeatForever *repeatSkew = [CCActionRepeatForever actionWithAction:seqSkew];
        [player runAction:repeatSkew];

同样repeatSkew动作要在选手到达终点时清除,这个在回调block里写,这里不再详述.