【唠叨】

    源码教程请移步:http://blog.csdn.net/iamlazybone/article/details/19612941

    感谢懒骨头提供了这么多的Demo教程,对于初学者的我而言,帮助真的十分大。

    注:本节仅仅记录博主自身学习《忍着飞镖射幽灵》的心得体会。


【游戏截图】

cocos2dx实战篇——《忍着飞镖射幽灵》学习心得_第1张图片




【学习心得】


1、遍历CCArray

//
	CCARRAY_FOREACH(CCArray, object) 
	{
		//......
	}
//


2、更改背景颜色

    使用颜色布景层CCLayerColor。

//
	//1.继承CCLayerColor
	//2.然后在init里,将 if(!CCLayer::init()) 替换为
	if( !CCLayerColor::initWithColor( ccc4(255,255,255,255) ) )
//


3、碰撞检测

    使用boundingBox()、intersectsRect()两个函数,进行矩形碰撞检测。

//
	//获得图片矩阵 boundingBox()
	CCRect rect_bullet = bullet->boundingBox();
	CCRect rect_enemy  = enemy->boundingBox();

	//碰撞检测intersectsRect()
	rect_enemy.intersectsRect(rect_bullet);
//


4、获得触摸点坐标

//
	CCTouch* touch
	CCPoint location = touch->getLocation();
//


5、帧动画

    直接使用图片资源创建Animation/Animate动画。

//
	CCAnimation* animation = CCAnimation::create();

	for (int i = 9; i <= 23; i += 2) {
		char str[50];
		sprintf(str, "hero/20005_%2d.png", i);
		animation->addSpriteFrameWithFileName(str);
	}
	
	animation->setDelayPerUnit(1.0f / 16.0f); //每帧间隔,单位秒
	animation->setRestoreOriginalFrame(true); //是否还原为原始帧

	CCFiniteTimeAction* ac = CCAnimate::create(animation);
	CCCallFunc* finished = CCCallFunc::create(this, callfunc_selector(GameOver::actionDone));
	CCFiniteTimeAction* act = CCSequence::create(ac, finished, NULL);
	sp->runAction(act);
//