【唠叨】
源码教程请移步:http://blog.csdn.net/iamlazybone/article/details/19612941
感谢懒骨头提供了这么多的Demo教程,对于初学者的我而言,帮助真的十分大。
注:本节仅仅记录博主自身学习《战神传说》的心得体会。
【游戏截图】
【学习心得】
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、混合模式
详细讲解请移步:http://shahdza.blog.51cto.com/2410787/1547633
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); //设置飞机移动后的坐标 } } //