cocos2d-js之入門篇

轉載請標明出處:
http://blog.csdn.net/iamzgx/article/details/54232599
本文出自:【iGoach的博客

cocos2d-js,至今日,也馬馬虎虎算接觸了一個星期了。這篇也算是對這個星期進行總結吧。

做爲入門者,你需要明白cocos2d-x和cocos2d-js和cocos2d-lua和cocos2d-html和Cocos2d-Java的區別

cocos2d首先是使用Python語言寫的,之後國內某人改版成c++版本的cocos2d-x,後來引入cocos2d-js,cocos2d-lua,cocos2d-html(現已合併到cocos2d-js),cocos2d-java。其中cocos2d-js在2014年就得到廣泛的使用。

做爲入門者,你需要明白cocos2d-js的基本框架

No picture you say a jb,上圖:

這裏寫圖片描述

一眼望去,做爲android開發者,瞬間想到的是android基本框架的那張圖,個人感覺有點像。

第一層是一些遊戲平臺,我們可以在Browsers 、Mobile Browsers ,WebApp,Android、Ios、Mac、Win32等等平臺運行,三個字——跨平臺,爲什麼支持跨平臺呢?我們知道使用java的虛擬機就可以跨平臺,天然的,至於ios使用的是開源項目Avian(java虛擬機)。

第二層,左邊是cocos2d-h5,右邊是cocos2d-x和cocos2d-xJSB。看到這裏,會發現:

在瀏覽器平臺,調用的是cocos2d-h5,它包括SceneGraph、Audio、Network、Animation、Physics、Resources Loader、Plugin-X,Editor Support等模塊,也就是支持場景渲染,音視頻,網絡請求,動畫,物理感應,資源加載,Plugin-X是簡化第三方平臺接入的作用,Editor Support主要是對編輯器進行一些支持。

在Native平臺,調用的是cocos2d-x引擎,而cocos2d-x jsb是js代碼轉換爲c++代碼的橋樑,它裏面包括spidermonkey引擎,通過spidermonkey引擎引擎回傳給JSB,JSB橋接cocos2d-x。

第三層cocos2d-js API 是提供cocos2d-js開發者調用的API。類似android框架的framework層。

第四層cocos2d-js, Games開發者就是在這層進行開發的。

做爲入門者,你需要明白cocos2d-js引擎原理

簡單來說,就是使用h5的canvas標籤進行繪製。

做爲入門者,你可能需要以下的一些學習資料

cocos2d官網http://www.cocos.com/docs/js/index.html
cocos2d-js教學視頻http://i.youku.com/lingjianfeng

做爲入門者,你需要搭建開發環境

1、window平臺下載安裝Python https://www.python.org/downloads/
2、下載cocos2d-js引擎http://www.cocos.com/download
3、下載Apache Ant https://ant.apache.org/bindownload.cgi
4、下載AndroidSDK和Android NDK
5、下載wamp本地服務器
6、下載IDE sublime或者webstorm

首先安裝python環境,只需要next就行,同時在path環境配置python的路徑,最後在doc裏面運行命令如下

這裏寫圖片描述

這樣就安裝成功了。
接下來通過python命令運行cocos2d-js引擎裏面的setup.py命令,比如,我的命令如下:

這裏寫圖片描述

分別按步驟配置Apache Ant,Android SDK、Android NDK路徑就好,注意Ant路徑要要bin路徑下。

配置好之後,接下來就是安裝wamp,直接next就行了。最後運行wampmanager.exe,會看到任務欄裏面程序,如下

這裏寫圖片描述

點擊它,然後啓動所有服務就打開了本地服務器了。

接下來就是安裝開發環境sublime或者webstorm。

到這裏,我們就把開發環境搭建完成了。

做爲入門者,你需要運行第一個HelloWorld

首先,我們在doc裏面cd到wamp安裝路徑裏面的www文件夾裏面(或在你自己想要地方的創建),運行創建項目的命令。比如我的命令如下:

這裏寫圖片描述

這樣就創建好了一個項目,接下來我們來運行它
有兩種方式,一種是通過命令

cocos run -p web

或者直接打開瀏覽器訪問,訪問本地ip+/工程項目就行,比如我的如下

http://192.168.31.240/HelloWorld/

這裏寫圖片描述

這樣我們上圖界面和運行動畫,也算入門了,哈哈。

做爲入門者,你需要了解下基本工程項目

No picture you say a jb,上圖:

這裏寫圖片描述

framework目錄,是cocos2d-js的API層的源碼,可供我們調用的時候查看源碼

res目錄,主要是放置一些本地資源文件

runtime目錄,ios的虛擬機

src目錄,寫js目錄,場景,層,精靈等都是放在這層

tools目錄,也就是框架裏面的jsb層,把js轉換爲cocos2d-x的cpp代碼的工具

.cocos-project.json和CMakeLists.txt項目編譯配置文件

index.html 遊戲的首頁

main.js,遊戲運行的入口函數,也就是類似的main函數

project.json 配置js的文件

做爲入門者,來開發第一個場景

首先我們在src目錄創建一個Scene,命名爲HelloScene.js,代碼如下:

var HelloLayer = cc.LayerColor.extend({
    ctor:function(){
        this._super(cc.color.BLUE);
        //添加一個文本元素
        var size = cc.winSize;
        var helloTxt = new cc.LabelTTF("Hello World","Arial",30);
        helloTxt.x = size.width/2;
        helloTxt.y = size.height/2;
        this.addChild(helloTxt);
        this._listener = new cc.EventListener.create({
            event:cc.EventListener.TOUCH_ONE_BY_ONE,
            swallowTouches: true, 
            onTouchBegan:function(touch,event){
                var target = event.getCurrentTarget();  // 獲取事件所綁定的 target
                     // 獲取當前點擊點所在相對按鈕的位置座標
                var locationInNode = target.convertToNodeSpace(touch.getLocation());    
                var s = target.getContentSize();
                var rect = cc.rect(0, 0, s.width, s.height);
                if (cc.rectContainsPoint(rect, locationInNode)) { // 點擊範圍判斷檢測
                    alert("You don't ckick me");
                    return true;
                }
            }
        });
        cc.eventManager.addListener(this._listener,helloTxt);
    },
});
var HelloScene = cc.Scene.extend({
    onEnter:function(){
        this._super();
        this.addChild(new HelloLayer());
    },
});

簡單的一個Hello Wrold文本,然後爲它添加一個點擊事件。
通過上面代碼我們知道,首先我們繼承的是cc.LayerColor,主要爲場景添加一個背景顏色,如果不需要背景顏色,可以直接繼承cc.Layer。然後我們通過cc.LabelTTF創建了一個文本。爲這個文本添加了一個點擊事件,主要是通過cc.eventManager.addListener實現的,通過cc.EventListener.create創建一個回調,這個回調方法裏面有三個參數

event:cc.EventListener.TOUCH_ONE_BY_ONE //單次觸摸事件監聽器

swallowTouches: true// 設置是否攔截事件,在 onTouchBegan 方法返回 true 時攔截,類似android的onInterceptTouchEvent

onTouchBegan:function //實現 onTouchBegan 事件回調函數

然後通過cc.Scene.extend創建HelloScene這個場景,把HelloLayer創建addChild就行。

接下來,在app.js右下角按鈕事件添加場景跳轉就行

這裏寫圖片描述

然後再project.json配置HelloScene.js,如下

這裏寫圖片描述

這樣沒問題,我們就可以保存F5刷新下瀏覽器運行試下了,效果如下圖

這裏寫圖片描述

以上只是簡單的一個示例。還有很多基本知識,沒有說到,只能靠自己慢慢修煉了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章