代码改变世界

Cocos2d-x v3.1 Hello world程序(四)

2017-06-14 11:09  tlnshuju  阅读(235)  评论(0编辑  收藏  举报

Cocos2d-x v3.1 Hello world程序(四)

 

   在上一篇文章中我们我们已经使用Cocos-Console工具生成了project,本机生成的文件夹为:“D:\CocosProject\Tutorial”。我们进入该文件夹中,例如以下图:

       image

    本篇文章我们将使用Cocos2d-x引擎写一个最简单的project——“Hello world”。我们将使用VS2012进行win32程序的开发,然后使用ADT生成Android的APK程序,当然我们也能够使用Cocos-Console来生成APK程序。接下来我会对生成的project中的文件做一个简单的说明并介绍两种生成APK的方式。

 

project目录介绍

  • Classes: 主要存放我们CPP文件。
  • CMakeFiles: 存放CMake的暂时文件。

  • cocos2d: 引擎的源码文件夹。
  • proj.android: android项目文件夹,使用ADT导入。
  • proj.iso.mac:XCode的项目文件夹。
  • proj.linux:linux项目文件夹。主要用于在linux下生成程序。
  • proj.win32: Windows项目文件夹。VS2012project文件夹。

  • proj.wp8-xaml:Win8项目文件夹,VS2012project文件夹,使用C#进行开发。
  • Resource:资源文件夹。用于存放贴图、音频、地图等一些游戏中使用的资源,我们从CocoStudio中导出的资源也要放入此文件夹。

project文件介绍

       image

  • AppDelegate.*文件:程序的引擎的启动文件。由main.*文件里的程序入口函数_tWinMain构造的对象并调用的run函数。
  • HelloWorldScene.*文件:主场景文件,我们的“Hello world”代码也在这里写。
  • main.*文件:程序入口函数所在文件。

编写Hello world程序

    打开HelloWorldScene.cpp,找到“init”函数,事实上在里面都已经有了Hello world的代码。我就不把它删了再写了,看一看就能明确了。代码例如以下:

  1: bool HelloWorld::init()
  2: {
  3:     //////////////////////////////
  4:     // 1. super init first
  5:     if ( !Layer::init() )
  6:     {
  7:         return false;
  8:     }
  9:     
 10:     Size visibleSize = Director::getInstance()->getVisibleSize();
 11:     Vec2 origin = Director::getInstance()->getVisibleOrigin();
 12:    
 13:     auto closeItem = MenuItemImage::create(
 14:                                            "CloseNormal.png",
 15:                                            "CloseSelected.png",
 16:                                            CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
 17:  
 18:     auto menu = Menu::create(closeItem, NULL);
 19:     menu->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , origin.y + closeItem->getContentSize().height/2));
 20:     this->addChild(menu, 1);   
 21:     
 22:     auto label = LabelTTF::create("Hello World", "Arial", 24);
 23:     label->setPosition(Vec2(origin.x + visibleSize.width/2,
 24:                             origin.y + visibleSize.height - label->getContentSize().height)); 
 25:     this->addChild(label, 1);
 26:    
 27:     auto sprite = Sprite::create("HelloWorld.png");   
 28:     sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));   
 29:     this->addChild(sprite, 0);
 30:     
 31:     return true;
 32: }

    第5行是调用基类的初始化函数对层进行初始化,第10、11行获取可视化区域的尺寸和原点。第13-20是创建左下方的退出菜单22-25是在屏幕中心创建一个文本标签“Hello world”, 27- 29创建了一个精灵(Sprite)对象在屏幕中心。我们直接编译执行看结果吧。

image

生成APK

  • 使用ADT生成APK

       1.打开ADT文件夹找到eclipse的启动文件(本机文件夹:D:\Cocos\adt-bundle-windows-x86\eclipse)双击eclipse.exe打开开发环境。

       2.运行“文件”->“导入”,例如以下图:

         image

      3.选择我们生成的project文件夹(本机文件夹为:D:\CocosProject\Tutorial)

        image

     4.点击完毕

        image

  • 使用Cocos-Console生成APK

     打开CMD进入到project文件夹(本机文件夹为:D:\CocosProject)。输入例如以下命令:“cocos run –s ./Tutorial –p android –m release”。

      image

    编译可能会花费非常长的时间。当编译完后。我们会再proj.android文件夹下的bin文件夹里找到生成的APK(本机文件夹:D:\CocosProject\Tutorial\proj.android\bin)。

     image