下了cocos2d-x 源码,开搞!

首先,笔者本身

1)      5年没有摸过c++了

2)     没用过cocos2d-x

3)      有强烈的求知欲望(这条每个简历个人介绍不都这么写么,哈哈)

来开搞!

首先运行cocos源码,笔者vs2013打开的

喏,有图有真相

cpptest和emptytest都是能运行的,直接运行,编译直接过的,咱们说的是emptytest,也就是说空项目的那个,原因很简单,cpptest编译慢,empty快,哈哈

这是运行的界面,恩,然后。我们看一下代码:

首先,AppDelegate这个类,是一个类似于入口函数的东西,我暂且叫他这个东西,然后,我们找到

  1. // set searching path
  2. FileUtils::getInstance()->setSearchPaths(searchPath);
  3.  
  4. // turn on display FPS
  5. director->setDisplayStats(true);
  6.  
  7. // set FPS. the default value is 1.0/60 if you don't call this
  8. director->setAnimationInterval(1.0 / );
  9.  
  10. // create a scene. it's an autorelease object
  11. auto scene = HelloWorld::scene();
  12. auto fish = FishTestScence::scene();
  13. // run
  14. director->runWithScene(scene);
  15.  
  16. return true;

这里,auto scene就是它自带的HelloWorld::Scence的一个例子画布,

  1. director->runWithScene(scene);

这里,就是显示当前的场景,然后进入HelloWorldScene.cpp中

  1. bool HelloWorld::init()
  2. {
  3. //////////////////////////////
  4. // 1. super init first
  5. if ( !Layer::init() )
  6. {
  7. return false;
  8. }
  9.  
  10. auto visibleSize = Director::getInstance()->getVisibleSize();
  11. auto origin = Director::getInstance()->getVisibleOrigin();
  12.  
  13. /////////////////////////////
  14. // 2. add a menu item with "X" image, which is clicked to quit the program
  15. // you may modify it.
  16.  
  17. // add a "close" icon to exit the progress. it's an autorelease object
  18. auto closeItem = MenuItemImage::create(
  19. "CloseNormal.png",
  20. "CloseSelected.png",
  21. CC_CALLBACK_1(HelloWorld::menuCloseCallback,this));
  22.  
  23. closeItem->setPosition(origin + Vec2(visibleSize) - Vec2(closeItem->getContentSize() / ));
  24.  
  25. // create menu, it's an autorelease object
  26. auto menu = Menu::create(closeItem, nullptr);
  27. menu->setPosition(Vec2::ZERO);
  28. this->addChild(menu, );
  29.  
  30. /////////////////////////////
  31. // 3. add your codes below...
  32.  
  33. // add a label shows "Hello World"
  34. // create and initialize a label
  35.  
  36. auto label = LabelTTF::create("Hello World", "Arial", TITLE_FONT_SIZE);
  37.  
  38. // position the label on the center of the screen
  39. label->setPosition(origin.x + visibleSize.width/,
  40. origin.y + visibleSize.height - label->getContentSize().height);
  41.  
  42. // add the label as a child to this layer
  43. this->addChild(label, );
  44.  
  45. // add "HelloWorld" splash screen"
  46. auto sprite = Sprite::create("HelloWorld.png");
  47.  
  48. // position the sprite on the center of the screen
  49. sprite->setPosition(Vec2(visibleSize / ) + origin);
  50.  
  51. // add the sprite as a child to this layer
  52. this->addChild(sprite);
  53.  
  54. return true;
  55. }

这段代码就是它显示在界面上的一个label和一个image,什么 setposition 什么addchild啦,这些每一个程序狗都是能看懂的

大概就是这个样子。

然后呢,作为一个有尊严的程序狗,我不能老是照抄源码吧,你要写一些自己的东西,然后,笔者照猫画虎写了两个文件

FishTestScence.h 和FishTestScence.cpp

内容会传上去

我在 画布上花了一个button ,和一个简单的图片,然后鼠标点击button事件的触发,

  1. bool FishTestScence::init()
  2. {
  3. if (!Scene::init())
  4. {
  5. return false;
  6. }
  7.  
  8. auto visibleSize = Director::getInstance()->getVisibleSize();
  9. auto origin = Director::getInstance()->getVisibleOrigin();
  10.  
  11. auto button = ui::Button::create("dangban.png", "ball.png");
  12.  
  13. button->setPosition(Vec2(visibleSize / ) + origin);
  14. button->setPressedActionEnabled(true);
  15. button->setTitleText("lou zhu sb");
  16.  
  17. button->addTouchEventListener(CC_CALLBACK_2(FishTestScence::onButtonClicked, this));
  18. this->addChild(button);
  19.  
  20. return true;
  21. }

这是我照猫画虎的代码

点击button 然后能够接收到按钮的click事件

感觉还是不错的,毕竟只是花了一天时间开始试着搞

友情提示:ball.png和dangpan.png这两张图片如果读取不对,你要跟一下他的那个读取函数,看filepath然后把图片放到路径下

源代码:test.rar

cocos2d-x step by step(1) First Blood的更多相关文章

  1. Step by step Dynamics CRM 2011升级到Dynamics CRM 2013

    原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html 转载请注明出处 (一)检查Customizations 从2011升级到2013有一些legacy f ...

  2. Step by Step 创建一个新的Dynamics CRM Organization

    原创地址:http://www.cnblogs.com/jfzhu/p/4012833.html 转载请注明出处 前面演示过如何安装Dynamics CRM 2013,参见<Step by st ...

  3. Step by step Install a Local Report Server and Remote Report Server Database

    原创地址:http://www.cnblogs.com/jfzhu/p/4012097.html 转载请注明出处 前面的文章<Step by step SQL Server 2012的安装 &g ...

  4. Step by step Dynamics CRM 2013安装

    原创地址:http://www.cnblogs.com/jfzhu/p/4008391.html 转载请注明出处   SQL Server可以与CRM装在同一台计算机上,也可安装在不同的计算机上.演示 ...

  5. Step by step 活动目录中添加一个子域

    原创地址:http://www.cnblogs.com/jfzhu/p/4006545.html 转载请注明出处 前面介绍过如何创建一个域,下面再介绍一下如何在该父域中添加一个子域. 活动目录中的森林 ...

  6. SQL Server 维护计划实现数据库备份(Step by Step)(转)

    SQL Server 维护计划实现数据库备份(Step by Step) 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server  ...

  7. 转:eclipse以及step into step over step return的区别

    首先来讲一下step into step over step return的区别: step into就是单步执行,遇到子函数就进入并且继续单步执行:(F5) step over是在单步执行时,在函数 ...

  8. [转]Bootstrap 3.0.0 with ASP.NET Web Forms – Step by Step – Without NuGet Package

    本文转自:http://www.mytecbits.com/microsoft/dot-net/bootstrap-3-0-0-with-asp-net-web-forms In my earlier ...

  9. EF框架step by step(7)—Code First DataAnnotations(2)

    上一篇EF框架step by step(7)—Code First DataAnnotations(1)描述了实体内部的采用数据特性描述与表的关系.这一篇将用DataAnnotations描述一下实体 ...

  10. EF框架step by step(6)—处理实体complex属性

    上一篇的中介绍过了对于EF4.1框架中,实体的简单属性的处理 这一篇介绍一下Code First方法中,实体Complex属性的处理.Complex属性是将一个对象做为另一个对象的属性.映射到数据库中 ...

随机推荐

  1. Linux学习-备份要点

    备份资料的考虑 老实说,备份是系统损毁时等待救援的救星!因为你需要重新安装系统时, 备份的好坏会影响到你 系统复原的进度!事实上,系统有可能由于不预期的伤害而导致系统发生错误! 什么是不预期的伤害呢? ...

  2. Django Model two

    Django_model: eg: class XXXX(models.Model): nid = models.AutoField(primary_Key=True) name = models.C ...

  3. sql中group by 和having 用法解析

    --sql中的group by 用法解析:-- Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”.--它的作用是通过一定的规则将一个数据集划分成若干个小的 ...

  4. 【NOIP2013】货车运输 最大生成树+LCA

    题目描述 AA国有nn座城市,编号从 1到n,城市之间有m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重 ...

  5. c4d 宝典部分二

    一.tvart 文字 1.当选择工具 选择面或边时不出现对象坐标时,需要将容错的选项选中 2.当选择两个面右键挤压的时候,如果两个面不分离,需要取消群组并且 拉动箭头的时候需要在空白区域拉动 tvar ...

  6. csa Round #70

    Digit Holes Time limit: 1000 msMemory limit: 256 MB   When writing digits, some of them are consider ...

  7. iOS学习笔记31-从图册获取图片和视频

    一.从图册中获取本地图片和视频 从图册中获取文件,我们使用的是UIImagePickerController,这个类我们在之前的摄像头中使用过,这里是链接:iOS学习笔记27-摄像头,这里我们使用的是 ...

  8. 【bzoj1307】玩具 单调栈

    题目描述 小球球是个可爱的孩子,他喜欢玩具,另外小球球有个大大的柜子,里面放满了玩具,由于柜子太高了,每天小球球都会让妈妈从柜子上拿一些玩具放在地板上让小球球玩. 这天,小球球把所有的N辆玩具摆成一排 ...

  9. 最短路---dijsktra--邻接矩阵

    ; ; //点的个数 int dist[MAXNUM]; int prev[MAXNUM]; int A[MAXUNM][MAXNUM]; void Dijkstra(int v0) { bool S ...

  10. [BZOJ2678][Usaco2012 Open]Bookshelf

    P.S. 偶然间发现可以用 markdown... [BZOJ2678][Usaco2012 Open]Bookshelf 试题描述 When Farmer John isn't milking co ...