(NO.00002)iOS游戏精灵战争雏形(十)

到目前为止,子弹是有去无回.如果子弹击中目标或者飞出屏幕,那么子弹也就没必要存在了.

这里的不存在不是把它从屏幕中删除,因为前面提到了子弹缓存的作用,所以这里仅仅将其设置为不可见就可以了.

首先处理飞出屏幕的子弹,在MainScene.m中添加update方法如下:

-(void)update:(CCTime)delta{
    for (CCSprite *bullet in _bullets) {
        if (bullet.visible) {
            if (bullet.position.x <= 0 || bullet.position.x >= 1 ||
                bullet.position.y <= 0 || bullet.position.y >= 1) {
                bullet.visible = NO;
                //CCPhysicsBody *physicsBody = bullet.physicsBody;
                //[physicsBody applyImpulse:ccp(0,0)];
            }
        }
    }
}

我们需要随时检查子弹有没有飞出屏幕,判断逻辑很简单:直接判断子弹坐标位置即可.因为子弹坐标类型是百分比类型,所以屏幕整体的长宽都为(0,1),如果发现了飞出屏幕的子弹我们使其不可见.

还有一种情况,就是当子弹碰到目标的时候,我们将在下一篇中再叙 ;)

上一篇:CentOS安装solr 4.10.3


下一篇:lua 的io操作,非常详细