如何使用kobold2d来做一个简单的iphone游戏教程(第六部分)

免责声明:本系列教程是根据该系列教程实践过程所作的自己使用kobold2D框架经历。仅供学习与交流使用,请勿进行商业传播,转载时不要移除本声明。如果产生任何纠纷均与博客所有者无关。欢迎转载。

作者:Rush.xzj

这篇主要完成如下2个功能

1.获取CCSprite所在的矩形区域

2.添加游戏的相关背景音乐

获取CCSprite所在的矩形区域

在上一篇文章中我们已经通过一个函数计算出Sprite矩形区域,可是Kobold2D(cocos2D)框架号称功能非常齐全的啊。不应该没有计算区域的办法,我们通过代码指导发现CCSprite如下2个函数可疑

- (CGRect) boundingBoxInPixels
{
	CGRect rect = CGRectMake(0, 0, contentSizeInPixels_.width, contentSizeInPixels_.height);
	return CGRectApplyAffineTransform(rect, [self nodeToParentTransform]);
}

- (CGRect) boundingBox
{
	CGRect ret = [self boundingBoxInPixels];
	return CC_RECT_PIXELS_TO_POINTS( ret );
}

在观看宏:CC_RECT_PIXELS_TO_POINTS

#define CC_RECT_PIXELS_TO_POINTS(__pixels__) __pixels__
好吧,我姑且认为这2个函数是一样的(不知道为什么是这样设计的,如果有人有其他想说的可以回复我)
用如下的测试代码:

            CGRect rect2 = [selectMonster boundingBox];
            CGRect rect3 = [selectMonster boundingBoxInPixels];
            
            CGRect selectMonsterRect = [self calculateRectWithCCSprite:selectMonster];

可以发现3个rect都是一样的,所以我们可以删除calculateRectWithCCSprite方法用boundingBoxInpixels或者boundingBox来替代

这样设计的原因? 通过看源码可以猜测:也许是因为本来是用boundingBoxInPixels,后来觉得这个名称命名不怎么好,但是又不能影响到以前写的代码,所以加了方法boundingBox。如果有人知道原因告诉我以下。

添加相关的背景音乐

整个游戏的背景音乐,发射子弹的声音,怪物被消灭的声音 资源地址(http://download.csdn.net/detail/xzjxylophone/3985658)

添加背景音乐,在init方法中:

[[SimpleAudioEngine sharedEngine] playEffect:@"background-music-aac.caf"];

发射子弹添加音乐,在ccTouchesEnded方法中

[player runAction:playSequence];代码后添加:

[[SimpleAudioEngine sharedEngine] playEffect:@"pew-pew-lei.caf"];

怪物被消灭后,在update方法中修改 if(isHit) 代码块:

        if(isHit) {
            Monster *hitMonster = (Monster *)deleteMonster;
            hitMonster.curHp--;
            [deleteProjectiles addObject:selectProjectile];
            if(hitMonster.curHp <= 0) {
                [self removeChild:deleteMonster cleanup:YES];
                [monsters removeObject:deleteMonster];
                [[SimpleAudioEngine sharedEngine] playEffect:@"explosion.caf"];
            } else {
                //[[SimpleAudioEngine sharedEngine] playEffect:@"explosion1.caf"];
            }
        }

到此为止,本篇教程就结束了。

该篇主要是介绍了添加声音和充分你利用Kobold2D库提供的方法。敬请期待下一篇文章!

你可能感兴趣的:(如何使用kobold2d来做一个简单的iphone游戏教程(第六部分))