【唠叨】

    源码教程请移步:

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

    注:本节仅仅记录博主自身学习《战神传说》的心得体会。

【游戏截图】

wKiom1QK0eqipZKkAAFxoHOj0cQ894.jpg


【学习心得】

1、CCSprite从大图里截取小图

//	//CCRectMake构造为UI坐标,原点在左上角。	CCSprite* sp = CCSprite::create("menu.png",CCRectMake(0,0,120,0));//

2、全局变量extern

//	//在.h中声明:	extern CCArray* play_bullet;		//在.cpp中定义:	CCArray* play_bullet = NULL;//

3、CCMenu布局

//	//1.让menu的所有按钮竖着排列,并且设置间距为20.	menu->alignItemsVerticallyWithPadding(20);	//2.按菜单项顺序竖着排列,放置每行ci个元素	menu->alignItemsInColumns(c1, c2, c3, ..., cn, NULL);//

4、开关菜单项CCMenuItemToggle

//	CCMenuItemFont* on = CCMenuItemFont::create("ON");	CCMenuItemFont* off = CCMenuItemFont::create("OFF");	CCMenuItemToggle* toggle = CCMenuItemToggle::createWithTarget(this,menu_selector(Options::setOptions),off,on,NULL);		//设置开关选项,下标从0开始	toggle->setSelectedIndex(1);//

5、上下取整函数

//	//小于等于x的最大整数	double floor(double x);	//大于x的最小整数	double ceil(double x);//

6、随机数0~1

//	CCRANDOM_0_1();//

7、动作分解

    当一个动画由多个动作组成时,可以对动画进行动作分解。

    如分解成:移动、放大、旋转等,单独处理,然后在整合成一个复杂的动作。

8、流程分解

    (1)checkIsCollide();     //碰撞检测(只扣血)

    (2)removeInactiveUnit(); //移除不活跃的元素(销毁死掉的战机或***)

    (3)checkIsReborn();      //战机重生,或游戏结束(重新复活)

    (4)updateUI();           //刷新界面

9、混合模式

    详细讲解请移步:

10、飞机触摸移动

//	void Game::ccTouchMoved(CCTouch* touch, CCEvent* event) {		if( ship!=NULL ) {			CCPoint pos = touch->getDelta();                        //获得触屏滑动的偏移量			CCPoint currentPos = ship->getPosition();               //获得飞机目前坐标			currentPos = ccpAdd(currentPos, pos);                   //飞机+偏移量 后的坐标			currentPos = ccpClamp(currentPos, CCPointZero, mysize); //不能移除屏幕			ship->setPosition(currentPos);                          //设置飞机移动后的坐标		}	}//