1戳青蛙项目描写叙述

1.1功能描写叙述

实现类似打地鼠游戏。青蛙随机出如今屏幕左边5*3的格子中,并会向屏幕右边移动,在青蛙逃离之前,手指点击实现戳灭青蛙的效果。随着分数添加,青蛙越来越多,当青蛙逃离5个后,游戏结束。

青蛙分为大青蛙和小青蛙,大青蛙走的忙。要点击3下,小青蛙走的快,仅仅需点击两下。

1.2所需技术

Cocos2D-x精灵类,动作类,多点触摸。CocoStudioUI编辑器。Vector

2戳青蛙执行流程

3戳青蛙具体设计

3.1实体基类

class CEntity : public Node {
public:CEntity();~CEntity();void spriteBind(Sprite* sprite);Sprite* spriteGet();
private:Sprite* m_SprBind;CC_SYNTHESIZE(int, m_iHP, iHP);       //血量CC_SYNTHESIZE(int, m_iSpeed, iSpeed);       //速度CC_SYNTHESIZE(std::string, m_sName, sName); //名字CC_SYNTHESIZE(Point, m_pos, pos);   //坐标
};

3.2青蛙类

青蛙类是基于实体类的。

class CFrog :public CEntity
{
public:CFrog();~CFrog();virtual bool init();CREATE_FUNC(CFrog);void createSpriteByName();bool clickJudge(Point pos);//推断该青蛙有没被点击void getHurt();//获得伤害bool dieJudge();//是否死亡推断
};

createSpriteByName是依据m_sName,从精灵缓冲池中选取不同的图片(大小青蛙),而且绑定动画。青蛙具有血量,名字(类型)。速度的属性。

3.3青蛙管理器类

class CFrogMgr :public Node
{
public:CFrogMgr();~CFrogMgr();bool initBy();CREATE_FUNC(CFrogMgr);static CFrogMgr* createBy();void createFrog(float dt);void frogsMove(float dt);void touchDeal();CFrog* findClickFrog(Point pos);void frogPake(Point pos);void notityForPause(Ref* pData);
private:Vector<CFrog*> m_listFrog;
};

青蛙管理器类createFrog方法每2秒产生青蛙,产生数量是跟分数成正比的。

随机青蛙的产生的位置。青蛙的类型。每产生一个青蛙增加到青蛙的容器中。

3.3.1青蛙移动

frogsMove方法每0.1秒运行一遍,详细内容是遍历青蛙容器,把每一个青蛙个体的横坐标依据速度添加,当青蛙逃离了屏幕的最右端的时候,要把它从容器中删除。特别说明:容器的erase删除一个后会返回迭代器指向的下一个位置。

void CFrogMgr::frogsMove(float dt)
{//使用迭代器进行删除处理for (Vector<CFrog*>::iterator it = m_listFrog.begin(); it != m_listFrog.end();){(*it)->setPositionX((*it)->getPositionX() + (*it)->getiSpeed());//横坐标添加if ((*it)->getPositionX() > MAP_WIDE)//当逃离时{(*it)->removeFromParentAndCleanup(true);it = m_listFrog.erase(it);NOTIFY->postNotification(NOTIFY_HP, (Ref*)1);}else++it;}
}

3.3.2多点触摸响应

遍历青蛙容器。通过找哪个青蛙被点击。

使该青蛙掉血,直到其阵亡。

void CFrogMgr::frogPake(Point pos)
{CFrog* frogDiv = findClickFrog(pos);if (frogDiv == NULL)return;else{frogDiv->getHurt();if (frogDiv->dieJudge() == true){CocosDenshion::SimpleAudioEngine::getInstance()->playEffect(PATH_DIE_MUSIC);//循环播放背景音乐frogDiv->removeFromParentAndCleanup(true);m_listFrog.eraseObject(frogDiv);NOTIFY->postNotification(NOTIFY_SCORE, (Ref*)1);}}
}

4戳青蛙执行结果

源代码下载

转载于:https://www.cnblogs.com/jhcelue/p/7258194.html

cocos2dx3.0戳青蛙游戏(打地鼠)相关推荐

  1. Cocos2d-x3.0游戏实例《不要救我》第一章——前言

    我们可以学习? 这是一个非常easy游戏.但更多的东西用(对于初学者).至少,对于它的一个例子,有点多. 笨木头花心贡献.啥?花心?不呢.是用心~ 转载请注明,原文地址:http://www.benm ...

  2. Cocos2d-x3.0游戏实例《不要救我》第十篇(结束)——使用Json配置数据类型的怪物...

    如今我们有2种类型的怪物,并且创建的时候是写死在代码里的,这是要作死的节奏~ 所以.必须可配置.不然会累死人的. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www ...

  3. TA游戏推荐:Android益智游戏《戳青蛙》

    < 戳青蛙(Tap The Frog) >是一款十分考验反应能力的益智游戏,游戏中讲述了一只青蛙GG喜欢上了一只青蛙MM,而青蛙MM却喜欢的是青蛙王子.青蛙GG为了得到青蛙MM的芳心,决定 ...

  4. 如何使用cocos2dx3.0制作基于tilemap的游戏:第二部分

    引言 程序截图: 这篇教程是<如何使用cocos2dx3.0制作基于tilemap的游戏>的第二部分.在上一个教程中,我们创建了一个简单的基于tiled地图的游戏,里面有一个忍者在沙漠里寻 ...

  5. Cocos2d-x3.0游戏实例《别救我》目录导航(共10篇,已完结)

    这个5.1假期还真不错,有个小惊喜,那就是,我某个游戏今天的下载量爆表了,突破历史最高点~! 于是,我决定写一个新的游戏实例教程,以示庆祝~ 啊才怪啊~!这教程5.1之前就在写了,我还因此暂停了差不多 ...

  6. Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

    好吧,我真心全然搞不懂.我如今仅仅只是是写了3个类而已.怎么就已经到第八篇了?我感觉我说话已经够简单明了毫不唠叨了,真是奇怪.(小若:我噗.噗噗.) 好吧,既然如今主角已经能出现而且进行操作了.那,也 ...

  7. Cocos2d-x3.0游戏实例之《别救我》第十篇(完结)——用Json配置各类型怪物数据

    现在我们有2种类型的怪物,而且创建的时候是写死在代码里的,这是要作死的节奏~ 所以,必须可配置,不然会累死人的. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www ...

  8. cocos2d-x3.0开发游戏部分机型(显卡类型)闪退问题

    拓展cocos2d-x3.0底层支持etc图片格式,把游戏中的模型使用etc格式的图片替换. 原先可以运行在联想(lenovo S880,显卡类型是PowerVP SGX 531)的机器上,但是换成e ...

  9. “旅行青蛙”游戏外挂藏风险 苹果:或至个人ID泄露

    "旅行青蛙"游戏外挂藏风险 部分买家出现数据丢失 苹果客服提醒"外挂"或至个人ID泄露 <script type="text/javascrip ...

最新文章

  1. spacy spaCy主要功能包括分词、词性标注、词干化、命名实体识别、名词短语提取等等
  2. Java并发之ReentrantLock锁
  3. Linux输入不同颜色字体
  4. 使用第三方《UITableView+FDTemplateLayoutCell》自动计算UITableViewCell高度(Masonry约束)...
  5. Oracle hang 之sqlplus -prelim使用方法
  6. 欢乐纪中A组赛【2019.8.20】
  7. pythonqt4上位机开发_「新阁教育」自由口通信上位机实战案例
  8. 如何从Alfresco中提取Language Pack
  9. 动画学习android,Android动画学习
  10. mice包--R中数据缺失值的处理
  11. JVM 隐含执行同步情况
  12. navicat的使用技巧
  13. 网络安全-终端安全检测和防御技术
  14. 眨眼网杨莹,能写代码能玩时尚的美女CEO-搜狐
  15. 医学图像有哪些会议期刊可以投
  16. 教你在线免费PDF转Word,建议收藏
  17. 一招解决windows电脑禁用笔记本自带键盘问题
  18. OBS (Open Broadcast Software) Studio - RTMP 推流与 ffplay/vlc 播放 .m3u8
  19. OPC UA - Open62541学习
  20. 移动端微信、QQ浏览器 web 用 rem 单位适配不生效问题

热门文章

  1. 通达信板块监控指标_板块强弱指标(通达信)
  2. 【跟着江科大学Stm32】GPIO_按键控制LED_光敏传感器控制蜂鸣器
  3. cisco IOS,nexus和Arista 的vrrp
  4. google earth engine (GEE)面向对象分类 代码
  5. poj 1830 开关问题
  6. python文件操作3--批量修改文件后缀名
  7. 第3章 事实、数据检索
  8. Oracle EBS 动态调用 XML Publisher 模板 输出不同的报表
  9. HDU 2542 树上战争
  10. webapi做为后端接口时在跨域调用时的注意点