【cocos2d-x IOS游戏开发-捕鱼达人12】鱼群效果
2013-12-05 22:12
344 查看
尊重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/17149543
上节回顾
【cocos2d-x IOS游戏开发-捕鱼达人11】鱼的产生和移动:完善
1、 鱼群效果设计
鱼群效果描述
一群鱼,保持队形(相对位置不变)从一个点移向另一个点
鱼群数据
锚点
速度
对应的鱼
初始位置
目标位置
处于鱼群中的鱼的数据
对应的鱼的模板ID
相对于鱼群锚点的偏移
2、 鱼群效果实现
需要处理的问题
鱼群出来时,其它鱼如何散场
鱼群走后,其它鱼如何回到场景
何时出现鱼群
先看下update的状态变换:
本节源代码与工程文件:【资源引用页】
思考:如何实现有旋转,非直线轨迹的鱼群效果?
上节回顾
【cocos2d-x IOS游戏开发-捕鱼达人11】鱼的产生和移动:完善
1、 鱼群效果设计
鱼群效果描述
一群鱼,保持队形(相对位置不变)从一个点移向另一个点
鱼群数据
锚点
速度
对应的鱼
初始位置
目标位置
处于鱼群中的鱼的数据
对应的鱼的模板ID
相对于鱼群锚点的偏移
2、 鱼群效果实现
需要处理的问题
鱼群出来时,其它鱼如何散场
鱼群走后,其它鱼如何回到场景
何时出现鱼群
先看下update的状态变换:
void CGameLogic::update( float dt ) { if(m_eGameState != EGS_GAME_PLAY) return; m_fTime += dt; switch(m_iSubState) { case EGPS_NORMAL: { static float total = 0; total+=dt; if(total > 3){ if(m_vecObjectsList.size()< config::CGameConfig::getMaxFishNum()){ createGameObject(); } total = 0; } const std::vector<fishingjoy::config::SFishGroupData>& rGroupData = fishingjoy::config::CFishGroup::getGroupData(); CCLOG("m_fTime = %f,rGroupData[0].BeginTime = %f",m_fTime, rGroupData[0].BeginTime); for(size_t i = 0; i < rGroupData.size(); ++i){ if(abs(m_fTime - rGroupData[i].BeginTime)<1){ m_iSubState = EGPS_GROUP_COME; int extend = config::CGameConfig::getExtendSize(); float xs[] = {-extend,480+extend, 480+extend,-extend}; float ys[] = {-extend,-extend, 320+extend,320+extend}; std::vector<CGameObject*>::iterator it = m_vecObjectsList.begin(); std::vector<CGameObject*>::iterator end = m_vecObjectsList.end(); for(;it!=end;++it){ int randx = CCRANDOM_0_1()*4; int randy = CCRANDOM_0_1()*4; (*it)->setTarget(xs[randx],ys[randy]); } m_pGroupData = &rGroupData[i]; m_fGroupTime = m_fTime; break; } } } break; case EGPS_GROUP_COME: { if(m_fTime > m_fGroupTime + GROUP_COME_TIME){ m_iSubState = EGPS_GROUP; for(int i = 0; i < m_pGroupData->Fishs.size(); ++i){ const config::SFishInGroup& rInGroup = m_pGroupData->Fishs[i]; createGameObject(rInGroup.FID,rInGroup.OffsetX + m_pGroupData->X + m_pGroupData->AnchorX, rInGroup.OffsetY + m_pGroupData->Y + m_pGroupData->AnchorY,m_pGroupData->Speed ,rInGroup.OffsetX + m_pGroupData->TargetX + m_pGroupData->AnchorX, rInGroup.OffsetY + m_pGroupData->TargetY + m_pGroupData->AnchorY); } m_fGroupTime = m_fTime; break; } } break; case EGPS_GROUP: { if(m_fTime > m_fGroupTime + m_pGroupData->LastTime){ m_iSubState = EGPS_GROUP_GO; m_fGroupTime = m_fTime; } } break; case EGPS_GROUP_GO: { if(m_fTime > m_fGroupTime+ GROUP_GO_TIME){ std::vector<CGameObject*>::iterator it = m_vecObjectsList.begin(); std::vector<CGameObject*>::iterator end = m_vecObjectsList.end(); for(;it!=end;++it){ (*it)->randomTarget(); } m_iSubState = EGPS_NORMAL; } } break; } if(m_pGameScene) m_pGameScene->update(dt); std::vector<CGameObject*>::iterator it = m_vecObjectsList.begin(); std::vector<CGameObject*>::iterator end = m_vecObjectsList.end(); for(;it!=end;++it){ (*it)->update(dt); } }
本节源代码与工程文件:【资源引用页】
思考:如何实现有旋转,非直线轨迹的鱼群效果?
相关文章推荐
- 【cocos2d-x IOS游戏开发-捕鱼达人13】完善鱼群效果
- 【cocos2d-x IOS游戏开发-捕鱼达人15】炮弹攻击效果1
- 【cocos2d-x IOS游戏开发-城市跑酷12】男一号上场,大家鼓掌!
- 【cocos2d-x IOS游戏开发-捕鱼达人16】炮弹攻击效果2
- 【cocos2d-x IOS游戏开发-城市跑酷7】设计烟囱与烟的效果
- 【cocos2d-x IOS游戏开发捕鱼达人22】资源引用页
- 【Cocos2d-x游戏引擎开发笔记(17)】实现运动的尾巴效果
- Cocos2d-x游戏开发——场景切换效果
- Cocos2d-x游戏开发之 《捕鱼达人》 总结
- 【cocos2d-x IOS游戏开发-捕鱼达人21】捕鱼达人结束之最后的最后
- cocos2d-x ios游戏开发初认识(一)
- quick-cocos2d-x游戏开发【6】——制作自定义效果按钮菜单
- 【cocos2d-x IOS游戏开发-捕鱼达人2】cocos2d-x简介与开发环境搭建
- 【cocos2d-x IOS游戏开发-捕鱼达人11】鱼的产生和移动:完善
- 【cocos2d-x IOS游戏开发-城市跑酷9】没有各种坑还叫游戏吗
- 【Cocos2d-x游戏引擎开发笔记(9)】实现DotA的技能冷却效果
- 【cocos2d-x IOS游戏开发-城市跑酷15】完善积分板【CCLabelBMFont】
- 【Cocos2d-x游戏引擎开发笔记(9)】实现DotA的技能冷却效果
- cocos2d-x游戏开发(十二)场景切换:滑门效果
- 【cocos2d-x IOS游戏开发-捕鱼达人3】交叉编译环境搭建