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

來源:互聯網
上載者:User

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

 

   在上一篇文章中我們我們已經使用Cocos-Console工具產生了工程,本機產生的目錄為:“D:\CocosProject\Tutorial”。我們進入該目錄中,如:

      

    本篇文章我們將使用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中匯出的資源也要放入此目錄。

工程檔案介紹

      

  • 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)對象在螢幕中心。我們直接編譯運行看結果吧。

產生APK

  • 使用ADT產生APK

       1.開啟ADT目錄找到eclipse的開機檔案(本機目錄:D:\Cocos\adt-bundle-windows-x86\eclipse)雙擊eclipse.exe開啟開發環境。

       2.執行“檔案”->“匯入”,如:

        

      3.選擇我們產生的工程目錄(本機目錄為:D:\CocosProject\Tutorial)

       

     4.點擊完成

       

  • 使用Cocos-Console產生APK

     開啟CMD進入到工程目錄(本機目錄為:D:\CocosProject)。輸入如下命令:“cocos run –s ./Tutorial –p android –m release”。

     

    編譯可能會花費很長的時間。當編譯完後,我們會再proj.android目錄下的bin目錄裡找到產生的APK(本機目錄:D:\CocosProject\Tutorial\proj.android\bin)。

    

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.