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


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

     

       在上一篇文章中我们我们已经使用Cocos-Console工具生成了工程,本机生成的目录为:“D:CocosProjectTutorial”。我们进入该目录中,如下图:

           image

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

     

    工程文件夹介绍

    • Classes: 主要存放我们CPP文件。
    • CMakeFiles: 存放CMake的临时文件。
    • cocos2d: 引擎的源代码目录。
    • proj.android: android项目目录,使用ADT导入。
    • proj.iso.mac:XCode的项目目录。
    • proj.linux:linux项目目录,主要用于在linux下生成程序。
    • proj.win32: Windows项目目录,VS2012工程目录。
    • proj.wp8-xaml:Win8项目目录,VS2012工程目录,使用C#进行开发。
    • Resource:资源目录,用于存放贴图、音频、地图等一些游戏中使用的资源,我们从CocoStudio中导出的资源也要放入此目录。

    工程文件介绍

           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:Cocosadt-bundle-windows-x86eclipse)双击eclipse.exe打开开发环境。

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

             image

          3.选择我们生成的工程目录(本机目录为:D:CocosProjectTutorial)

            image

         4.点击完成

            image

    • 使用Cocos-Console生成APK

         打开CMD进入到工程目录(本机目录为:D:CocosProject)。输入如下命令:“cocos run –s ./Tutorial –p android –m release”。

          image

        编译可能会花费很长的时间。当编译完后,我们会再proj.android目录下的bin目录里找到生成的APK(本机目录:D:CocosProjectTutorialproj.androidin)。

         image

  • 相关阅读:
    在linux上安装python, jupyter, 虚拟环境(virtualenv)以及 虚拟环境管理之virtualenvwraper
    linux
    Django ORM那些相关操作
    Django 中 form 介绍
    MySQL完整性约束
    git入门
    MySQL表的操作
    努力努力再努力
    Docker初始
    IO模型
  • 原文地址:https://www.cnblogs.com/qilezaitu/p/3808441.html
Copyright © 2020-2023  润新知