登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

查看: 836|回复: 6

(NO.00002)iOS游戏精灵战争雏形(七),动感小站no.222精灵

[复制链接]

305

主题

640

帖子

-1377

金钱

手工艺人

发表于 2018-1-11 15:22:06 | 显示全部楼层 |阅读模式

        

        接上一篇博文,我们继续完成射击的功能.

        还是在MainScene.m中,添加initBullets方法:

[Java] 查看源文件 复制代码
-(void)initBullets{
    CCSprite *bullet;
    for (int i = 0; i < MAX_BULLET_COUNT; i++) {
        bullet = (CCSprite*)[CCBReader load:#Sprites/Bullet];
        bullet.positionType = CCPositionTypeNormalized;
        bullet.visible = NO;
        [_bullets addObject:bullet];
        [_physics addChild:bullet];
    }
}

        该方法用来预先缓存子弹,其中MAX_BULLET_COUNT值为10,即表示我们预先创建10颗子弹,这10颗子弹是可以重复使用的,造成子弹无穷的假象.下面看一下如何&rdquo;制造&rdquo;一颗子弹:

        首先加载Bullet.ccb文件到bullet变量中,不要问为什么代码中没有.ccb后缀,前面SpriteBuilder普及知识里已经说过了,大家可以搜一下.然后修改子弹位置类型,这时子弹是看不见的,因为我们还没有发射出去.将子弹分别添加到子弹数组和物理对象中.

        这里要注意的是,不能直接把子弹添加到MainScene场景中,因为子弹是物理对象,他只能添加到物理世界中.

        修改didLoadFromCCB方法,在最后添加如下代码:

[Java] 查看源文件 复制代码
    [self initBullets];

        子弹的初始化工作都完成了,但是这时子弹还是不能用,还需要一个子弹&rdquo;上膛&rdquo;操作,子弹上膛之后才可以真正发射,遂添加一个loadBullet方法:

[Java] 查看源文件 复制代码
-(CCSprite*)loadBullet{
    static NSInteger last = 0;
    for (CCSprite* bullet in _bullets) {
        if (!bullet.visible) {
            bullet.visible = YES;
            return bullet;
        }
    }
    //如果所有子弹都可见,则取可见时间最长的那一颗
    CCSprite *bullet = _bullets[last];
    last = (last + 1)%MAX_BULLET_COUNT;
    return bullet;
}

        前面说过了,默认弹夹里的子弹都是不可见的,一旦发射出去子弹就变得可见了.这里寻找第一个不可见的子弹,然后上膛,将其变得可见,准备击发.如果此时所有子弹都可见怎么办?这意味着所有弹夹内的子弹都被打出去了.我们必须回收利用已经打出去的子弹,我们选择最早打出去的的那一颗子弹,注意方法中last变量是静态的.

        


                                               

21

主题

7193

帖子

2818

金钱

手工艺人

发表于 2018-1-11 15:28:25 | 显示全部楼层
内容很好,棒棒哒

23

主题

7173

帖子

1047

金钱

iOS大神

Rank: 6Rank: 6

分享大神

发表于 2018-1-11 15:32:26 | 显示全部楼层
帮帮顶顶!!

16

主题

7205

帖子

1638

金钱

手工艺人

发表于 2018-1-11 15:35:25 | 显示全部楼层
支持,感谢,祝code4app越来越好~

15

主题

7169

帖子

1806

金钱

手工艺人

发表于 2018-1-11 15:39:12 | 显示全部楼层
好好 学习了 确实不错

21

主题

7221

帖子

2780

金钱

手工艺人

发表于 2018-1-11 15:42:37 | 显示全部楼层
code4app确实是个好地方,必须支持~

0

主题

7164

帖子

-535

金钱

限制会员

发表于 2018-1-11 15:50:11 | 显示全部楼层
内容很好,棒棒哒
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

每日头条

通过邮件订阅最新 Code4App 信息
上一条 /4 下一条

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表