【Cocos2dx】Windows平台下Cocos2dx 2.x的下載、安裝、配置,打造自己的Helloworld

來源:互聯網
上載者:User

標籤:cocos2dx   vs2010   遊戲引擎   helloworld   遊戲   

Cocos2dx就不廢話介紹了, 非常火的遊戲引擎,關鍵是它開源,可以免費下載、學習、開發,不用搞這麼多啟用的東西。下面以Cocos2dx 2.x為例說明這個平台的一些基本東西。雖然現在Cocos2dx早已去到3.x的穩定版本,但之所以選用Cocos2dx 2.x版本,主要是這方面的資料比較多,本來搞Cocos2dx的人就不多了,搞了也沒幾個人寫寫編程記錄,再去毫無資料只有一堆難以看懂的官方文檔的Cocos2dx 3.x,基本上等於瞎整。

首先,由於這引擎在Windows的主流平台是通過大家熟悉的C++寫出來的,所以Cocos2dx 2.x的開發,你首先要準備Visual Studio 2010以上的版本。如果你選用Cocos2dx 3.x還要支援準備Visual Studio 2012以上的版本。已經不支援Visual Studio 2008了,這就沒辦法了,怪怪下載一個完整安裝。網上一搜一堆,不說了。

之後,由於Cocos2dx 2.x在當今網站的最後一版2.2.6不再提供InstallWizardForVS2010.js這鬼東西,需要用python語言建立新的工程,因此你可以參看我之前的《【Python】Windows版本的Python開發環境的配置,Helloworld,Python中文問題,輸入輸出、條件、迴圈、數組、類》(點擊開啟連結)先配好Python2.x的環境。

然後,你才在Cocos2dx的中文官網(點擊開啟連結),如,拉到最下面,下載Cocos2dx 2.x版本。

具體為:http://54.192.159.100/cocos2d-x-2.2.6.zip?fid=D2qKo-*f7vaAbUj7fijGQlgs5hzdkV4YAAAAAOeOX4E0-gk5fRKd*Y-Bb8j7lCvn&mid=666&threshold=150&tid=5D3FD9855047216E67D27C85E859FC2D&srcid=119&verno=1


下載之後,得到一個cocos2d-x-2.2.6.zip,解壓,這個解壓位置就是你以後cocos2dx的開發環境、工程的所在目錄,和php是一樣的,不好遷移,請小心選擇。

在你的cocos2dx的解壓目錄找到build-win32.bat這東西,雙擊運行。


經曆如下的一個漫長的編譯過程:


搞好之後,會出現如下的一個介面,cocos2dx官方提供的一大堆例子,有興趣看看之後,可以直接關閉。


至此,Cocos2dx的配置完成。

下面建立一個屬於我們自己的Helloworld,不要用官方的例子,根本看不出什麼端倪。

利用命令列進入.\cocos2d-x-2.2.6\tools\project-creator這個檔案夾,利用python命令,如,建立一個工程。

create_project.py -project 你的工程檔案夾名稱 -package 包名 -language 開發語言(基本上為cpp,不排除有大神精通肥豬流的Lua,也不建議使用javascript開發!)


在建立的過程中,可能會有如的報錯,不用管,因為你建立的MyDemo工程已經成功出現在.\cocos2d-x-2.2.6\projects檔案夾了,進入.\cocos2d-x-2.2.6\projects\MyDemo\proj.win32開啟HelloCpp.sln,開始利用Cocos2dx引擎(架構)在Windows上開發遊戲。

你可以觀察到在.\cocos2d-x-2.2.6\projects\MyDemo,出現proj.android、proj.ios等平台的檔案夾,這裡意味著,你可以在這些平台同樣利用Cocos2dx引擎(架構)進行開發。不是說一個平台開發,多平台共同編譯……


開啟HelloCpp.sln之後,等待Visual Studio 2010載入一大堆外部庫之後,你可以看到如下的檔案結構:


首先,你要明白一個概念,Cocos2dx中最簡單的Helloworld,是由一個叫Helloworld的情境、然後在這個Helloworld情境上放上一個Helloworld字串所組成的,

官方初始的Helloworld還在Helloworld這個情境中放上背景圖片、關閉按鈕等雜七雜八的東西,讓Helloworld檔案看起來比較複雜。

我們先從的main.cpp與AppDelegate.cpp入手,先設定好程式的一些基本東西。

首先是main.cpp,這東西的主函數就5行代碼,將其關於程式標題與視窗尺寸的18、19行進行修改,如下:

#include "main.h"#include "AppDelegate.h"#include "CCEGLView.h"USING_NS_CC;int APIENTRY _tWinMain(HINSTANCE hInstance,                       HINSTANCE hPrevInstance,                       LPTSTR    lpCmdLine,                       int       nCmdShow){    UNREFERENCED_PARAMETER(hPrevInstance);    UNREFERENCED_PARAMETER(lpCmdLine);    // create the application instance    AppDelegate app;    CCEGLView* eglView = CCEGLView::sharedOpenGLView();    eglView->setViewName("HelloWorld");//修改程式啟動並執行標題為Helloworld    eglView->setFrameSize(1024, 768);//修成程式啟動並執行尺寸為1024x768    return CCApplication::sharedApplication()->run();}

其餘代碼看不懂暫時先不要管,就像你當初學C語言,不必在乎#include<stdio.h>與void main(){}是什麼鬼,你首先要會改printf()中的內容。關於引入、函數這些東西,回頭再來學。

之後,還沒有改完,對AppDelegate.cpp進行修改,把第22行的幀數調試資訊關了,第25行的幀數有興趣可以改下,不過改了也看不出效果,修改如下:

#include "AppDelegate.h"#include "HelloWorldScene.h"USING_NS_CC;AppDelegate::AppDelegate() {}AppDelegate::~AppDelegate() {}bool AppDelegate::applicationDidFinishLaunching() {    // initialize director    CCDirector* pDirector = CCDirector::sharedDirector();    CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();    pDirector->setOpenGLView(pEGLView);    // turn on display FPS    pDirector->setDisplayStats(false);//關閉調試資訊    // set FPS. the default value is 1.0/60 if you don't call this    pDirector->setAnimationInterval(1.0 / 60);//這裡是設定遊戲啟動並執行幀數鎖定為60,一般牛B機器、牛B的遊戲都是鎖這個幀數,30幀是低配    // create a scene. it's an autorelease object    CCScene *pScene = HelloWorld::scene();    // run    pDirector->runWithScene(pScene);    return true;}// This function will be called when the app is inactive. When comes a phone call,it's be invoked toovoid AppDelegate::applicationDidEnterBackground() {    CCDirector::sharedDirector()->stopAnimation();    // if you use SimpleAudioEngine, it must be pause    // SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();}// this function will be called when the app is active againvoid AppDelegate::applicationWillEnterForeground() {    CCDirector::sharedDirector()->startAnimation();    // if you use SimpleAudioEngine, it must resume here    // SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();}
其餘那些什麼初始化代碼之類,看不懂,先不要管,也不要改。

之後,對整個程式的核心,管理HelloWorld這個情境的HelloWorldScene.cpp進行修改,放上屬於我們自己的東西,去掉官方的東西。主要對HelloWorldScene.cpp中的初始化參數bool HelloWorld::init(){}進行修改,其餘不要動,整個HelloWorldScene.cpp修改如下:

#include "HelloWorldScene.h"USING_NS_CC;CCScene* HelloWorld::scene(){    // 'scene' is an autorelease object    CCScene *scene = CCScene::create();        // 'layer' is an autorelease object    HelloWorld *layer = HelloWorld::create();    // add layer as a child to scene    scene->addChild(layer);    // return the scene    return scene;}// on "init" you need to initialize your instancebool HelloWorld::init(){//保留已經存在的初始化部分,不要進行修改,開始    if ( !CCLayer::init() )    {        return false;    }        CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();    //保留已經存在的初始化部分,不要進行修改,結束    CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 96);//聲明一個標籤文本Helloworld,其字型為Arial,字型大小為96    pLabel->setPosition(ccp(origin.x + visibleSize.width/2,//設定標籤文本的位置ccp是必須的,visibleSize.width/2為螢幕的中央,前面的origin.x是必須加上,用於多平台固定好位置                            origin.y + visibleSize.height/2));//y部分同理    this->addChild(pLabel, 1);//把這個標籤文本Helloworld放到情境中,層疊關係為1,相當於css中的z-index,這個數字越大,越在上面    return true;}void HelloWorld::menuCloseCallback(CCObject* pSender){#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)CCMessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");#else    CCDirector::sharedDirector()->end();#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)    exit(0);#endif#endif}

利用Ctrl+F5運行,或者點擊上方的運行按鈕則看到如下效果:

如果在編譯的時候,遇到如的“LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 檔案無效或損壞”錯誤:

那不關Cocos2dx的問題,是由於電腦中有多個Visual Studio衝突,或者之前版本的Visual Studio沒有卸載乾淨。當前系統中存在兩個cvtres.exe檔案,版本不同就會有問題了。我們讓VS2010直接使用系統的cvtres.exe程式。重新命名或刪除:(vs2010安裝的位置).\VC\bin\cvtres.exe

,我就把cvtres.exe搞成_cvtres.exe完事。


最後總結一下,Cocos2dx的Helloworld比起SSH算是簡單多了,代碼清晰。關鍵是注意好版本,正如php5.5之後不支援windows2003這樣的問題,你必須搞清楚Visual Studio 2010隻能支援Cocos2dx 2.x之類的。就是安裝可能有些繁瑣,畢竟python環境的安裝對於很多人來說比較陌生,Visual Studio 2010的安裝的耗時實在是無力吐槽了,再加上Cocos2dx 2.x的編譯過程,就是比較久。最主要網上許多蛋疼的資料就不說了……



著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

【Cocos2dx】Windows平台下Cocos2dx 2.x的下載、安裝、配置,打造自己的Helloworld

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.