文章结束给大家来个程序员笑话:[M]

网上似乎有这个版本了,但是人家是人家做的,自己动手敲一遍代码感觉还是不一样的

MoonWarrior cocos2d-x里头是用JS绑定来实现的,效果写的还挺好的,麻雀虽小五脏俱全,改成C++,既熟习了cocos2d-x,也复习了前段时间学的js

把win32的环境搭建好当前,新建一个cocos2d-x的工程,这篇就写Menu吧

新建一个类,继承自CCLayer,

需要写两行代码

virtual bool init();CREATE_FUNC(LoadingScene);

CREATE_FUNC是个宏定义,就是实现了create的方法,而create方法会调用init方法来初始化

bool bRet = false;do{//// super init first//CC_BREAK_IF(! CCLayer::init());CCSize winSize = CCDirector::sharedDirector()->getWinSize();
//加了两个图片进来CCSprite* background = CCSprite::create("loading.png");background->setAnchorPoint(ccp(0,0));this->addChild(background,0,1);CCSprite* logo = CCSprite::create("logo.png");logo->setAnchorPoint(ccp(0,0));logo->setPosition(ccp(0,250));this->addChild(logo,10,1);
//三个menu进来,menu也是有状态的,直接就能够生成了CCSprite* newGameNormal = CCSprite::create("menu.png",CCRectMake(0, 0, 126, 33));//cc.Sprite.create(s_menu, cc.rect(0, 0, 126, 33));CCSprite* newGameSelected = CCSprite::create("menu.png", CCRectMake(0, 33, 126, 33));CCSprite* newGameDisabled = CCSprite::create("menu.png", CCRectMake(0, 33 * 2, 126, 33));CCSprite* gameSettingsNormal = CCSprite::create("menu.png", CCRectMake(126, 0, 126, 33));CCSprite* gameSettingsSelected = CCSprite::create("menu.png", CCRectMake(126, 33, 126, 33));CCSprite* gameSettingsDisabled = CCSprite::create("menu.png", CCRectMake(126, 33 * 2, 126, 33));CCSprite* aboutNormal = CCSprite::create("menu.png", CCRectMake(252, 0, 126, 33));CCSprite* aboutSelected = CCSprite::create("menu.png", CCRectMake(252, 33, 126, 33));CCSprite* aboutDisabled = CCSprite::create("menu.png", CCRectMake(252, 33 * 2, 126, 33));CCMenuItem* newGame = CCMenuItemSprite::create(newGameNormal,newGameSelected,newGameDisabled,this,menu_selector(LoadingSense::newGameCallback));CCMenuItem* gameSettings = CCMenuItemSprite::create(gameSettingsNormal,gameSettingsSelected,gameSettingsDisabled,this,menu_selector(LoadingSense::onSettings));CCMenuItem* about = CCMenuItemSprite::create(aboutNormal,aboutSelected,aboutDisabled,this,menu_selector(LoadingSense::onAbout));//cc.MenuItemSprite.create(aboutNormal, aboutSelected, aboutDisabled, this, this.onAbout);CCMenu* menu = CCMenu::create(newGame,gameSettings,about,NULL);//CCMenu::create(newGame, gameSettings, about);menu->alignItemsVerticallyWithPadding(10);this->addChild(menu, 1, 2);menu->setPosition(ccp(winSize.width / 2, winSize.height / 2 - 80));
每日一道理
天又快黑了,这座忙碌的城市又将入睡,让这劳累的“身躯”暂别白日的辛勤,让它入睡,陪伴着城市中的人们进入梦乡。当空的弯月正深情地注视着这座城市与城市中的人们,看着家家户户的灯渐渐熄灭,它在床头悄悄奏响“明月曲”……
//这个schedule是让背景的那个小飞机飞到顶端了,还能从下面接着飞//this->schedulethis->schedule(schedule_selector(LoadingSense::update), 0.1);CCTexture2D* tmp = CCTextureCache::sharedTextureCache()->addImage("ship01.png");m_pShip = CCSprite::createWithTexture(tmp,CCRectMake(0, 45, 60, 38));this->addChild(m_pShip,0,4);CCPoint pos = ccp(((float)(rand()%10)/10)*winSize.width, 0);
//让飞机从底下飞到上边m_pShip->setPosition(pos);//m_pShip->setPosition(ccp(100,100));m_pShip->runAction(CCMoveBy::create(2,ccp(((float)(rand()%10)/10)*winSize.width,pos.y+winSize.height + 100)));//m_pShip->runAction(CCMoveBy::create(2,ccp(200,200)));
//播放音乐if(true){CocosDenshion::SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.7);CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic(s_mainMainMusic,true);}bRet = true;}while(0);return bRet;

转一篇关于锚点的 http://blog.csdn.net/cjopengler/article/details/7045638

基本的都有了,下面再看一个动画效果,点击new game当前,会有一个效果,看看这个效果怎么做的

CCSprite* flare = CCSprite::create("flare.jpg");ccBlendFunc ccBF = {GL_SRC_ALPHA, GL_ONE};
flare->setBlendFunc(ccBF);parent->addChild(flare, 10);flare->setOpacity(0);flare->setPosition(ccp(-30, 297));flare->setRotation(-120);flare->setScale(0.2);CCFadeTo* opacityAnim = CCFadeTo::create(0.5, 255);CCFadeTo* opacDim = CCFadeTo::create(1, 0);CCScaleBy* biggeAnim = CCScaleBy::create(0.7, 1.2, 1.2);CCEaseSineOut* biggerEase = CCEaseSineOut::create(biggeAnim);CCMoveBy* moveAnim = CCMoveBy::create(0.5, ccp(328, 0));CCEaseSineOut* easeMove = CCEaseSineOut::create(moveAnim);CCRotateBy* rotateAnim = CCRotateBy::create(2.5, 90);CCEaseExponentialOut* rotateEase = CCEaseExponentialOut::create(rotateAnim);CCScaleTo* bigger = CCScaleTo::create(0.5, 1);CCCallFunc* onComplete = CCCallFunc::create(target, callback);CCCallFunc* killflare = CCCallFunc::create(target, callfunc_selector(LoadingSense::killFlare));flare->runAction(CCSequence::create(opacityAnim, biggerEase, opacDim, killflare, onComplete,NULL));flare->runAction(easeMove);flare->runAction(rotateEase);flare->runAction(bigger);

关于cocos2d-x的动画,简单点的可以看http://blog.csdn.net/odustggg/article/details/8187843

这样背景 菜单 点击newGame以后的动画效果都就有了,后面就是该做游戏的重头戏了

文章结束给大家分享下程序员的一些笑话语录: 面试官:熟悉哪种语言
应聘者:JAVA
面试官:知道什么叫类么
应聘者:我这人实在,工作努力,不知道什么叫累
面试官:知道什么是包?
应聘者:我这人实在 平常不带包 也不用公司准备了
面试官:知道什么是接口吗?
应聘者:我这个人工作认真。从来不找借口偷懒
面试官:知道什么是继承么
应聘者:我是孤儿没什么可以继承的
面试官:知道什么叫对象么?
应聘者:知道,不过我工作努力,上进心强,暂时还没有打算找对象。
面试官:知道多态么?
应聘者:知道,我很保守的。我认为让心爱的女人为了自已一时的快乐去堕胎是不道德的行为!请问这和C#有什么关系??

--------------------------------- 原创文章 By
版本和效果
---------------------------------

版本效果MoonWarrior cocos2d-x版本 --1相关推荐

  1. python3最新版本-Python3第三方组件最新版本追踪实现

    一.说明 在安全基线中有一项要求就是注意软件版本是否是最新版本,检查是否是最新版本有两方面的工作一是查看当前使用的软件版本二是当前使用软件的最新版本.在之前的"安全基线自动化扫描.生成报告. ...

  2. 怎么切换java版本吗_Java切换JDK版本的方法及技巧

    由于项目的不同安排,之前项目开发时,使用的jdk版本为1.8,现临时接手一以前项目,需要更换jdk版本. 安装 不再赘述,去Oracle网站(https://www.oracle.com/techne ...

  3. 关于高版本数据库导入到低版本数据库时间的一些注意事项

    文章目录 前言 一.问题的出现 二.解决办法 如何解决 效果展示 前言 关于高版本数据库导入到低版本数据库的一些注意事项,因为之前是5.8的数据库,现在我在低位版本数据库创造数据,在更新时间和创造时间 ...

  4. PROTEUS最新版本下载CSDN_剪映4k版本下载-剪映4k版本60帧画质最新版v4.4.4

    剪映4k版本,一款全新升级的最新版本,拥有强大的4k60帧数画质的强大功能,让大家在生活中能够轻松完成自己想要的各种美颜拍摄效果,非常多不同风格的滤镜大家都可以免费进行体验,还有一键剪辑同款网红视频的 ...

  5. vivoX7的Android版本哪个好,vivo x7有几个版本?vivo x7各版本区别对比评测

    vivo x7有几个版本?各版本有什么区别?下面脚本之家的小编就带来了vivo X7版本对比介绍,一起来看看吧. 先来看看vivo x7的规格参数,从全局上对这款机型有一个大致的了解,参数党必看: v ...

  6. 降低node版本,怎么降低node版本

    降低node版本,怎么降低node版本? 部分老旧项目需要使用低版本的node,网上很多是无效的,高版本无法直接安装低版本node,但是低版本nodejs可以安装部分高版本node,从而达到升级效果. ...

  7. ubuntu18.04 Desktop版本部署13.2.6版本ceph

    文章目录 选择系统 安装系统 网络配置 CEPH部署 想要查看版本较高的ceph在进行录像业务存储且在磁盘占用率在70%左右时且ceph底层出现slow_request是否会对上层录像业务造成显性影响 ...

  8. Hadoop虚拟机的jdk版本和本地eclipse的版本不一致怎么办

    在本周学习Hadoop遇到了一个问题,困扰了半天,本人在安装Hadoop时是按照视频来的,结果发现Hadoop上的jdk版本和本地eclipse的版本不一致,导致本地的程序到处jar包传到虚拟机上运用 ...

  9. docker支持的linux版本,Docker 升级到最新版本

    1.查看系统要求 Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看CentOS的内核版本. uname -a 2.删除旧版本 yum remove docker docker-c ...

最新文章

  1. 公告三大“罪状”,无人驾驶公司Roadstar联合创始人被罢免
  2. Linux基础维护——笔记
  3. allocator_is_always_equal的实例
  4. zookeeper的单实例和伪集群部署
  5. python中x_python中round(x,[n])的使用
  6. Java在Windows下导出xml文件到Linux服务器上
  7. scrapy 中爬取时被重定向_Scrapy详解之scrapy shell
  8. 【EMNLP 2020】篇章要素识别和篇章结构评分(上)
  9. 22轴三菱Q系列程序案例点胶机,QJ71C24串口与位移传感器通信案例
  10. 毕达哥拉斯的数字和定理 -逻辑与算法之四
  11. 教你如何刻录极品CD音乐碟
  12. C++搜索算法和曼哈顿距离之最少连通代价
  13. C++20 latch
  14. 【06】上海各个区的经纬度
  15. 每日必读DZone news - 2022年2月十大DZone文章
  16. 【历史上的今天】5 月 23 日:Java 正式发布;晶体管的共同发明者出生
  17. 【超超超详细mysql下载安装攻略(有手就行)】
  18. matlab爆内存电脑卡死,电脑卡死怎么办?电脑卡顿的原因和解决办法
  19. JAVA常用工具类-【6】邮箱发送
  20. 如何将 bn.bing.com 重定向至 www.bing.com

热门文章

  1. 犹豫了许久,还是写个年总结记录一下吧
  2. hackthon提高
  3. openjdk需要自己添加cacerts,
  4. 图像对象paip.Image对象出现“对象当前正在其他地方使用或者GDI+中发生一般性错误的解决...
  5. 微软热门知识点之------c#3.0新特性【转】
  6. 构建 RESTful Web 服务
  7. 图像处理之基于NCC模板匹配识别
  8. 一文了解Kubernetes的前世今生
  9. mybatis添加记录时返回主键id
  10. 《Redis官方文档》事件库