當前位置:首頁 » 操作系統 » 網狐cocos2dx源碼

網狐cocos2dx源碼

發布時間: 2023-06-02 03:05:11

1. cocos2dx 2.x源碼還有用么

  1. 不建議再使用 cocos2d-x 2.x ,主要是 cocos2d-x 3.x 的 API 更合理,更規范,也使用了 C++ 11的諸多特性。

  2. cocos2d-x 的教材比較混亂,建議不要看。

  3. 觸控官網的文檔都不一定靠譜,最靠譜還是看源碼。

2. cocos2dx 3.x版本中導入tiled地圖如何導入對象層中對象的自定義信息(源碼+注釋)

步驟如下:
1. cocos2d-x 中使用類 TMXTiledMap 創建瓦片地圖
2. 使用 TMXTiledMap 中的 getObjectGroup 介面取得對象層
3. 使用對象層的 getObject 介面獲取對象信息,對象信息是一個 ValueMap 實例
4. 從 ValueMap 中取出數據

測試地圖如下所示:

3. vs2013 打開cocos項目找不到exe文件 編譯也沒有生成exe 修改項目屬性 修復vs 重裝系統都試過了 沒用

您好,python和ndk沒有用最新的
主要原因是之前搞的時候最新的有bug
於是沿用之前成功的版本
下面就是骨頭一路上的碰壁:

流水帳開始:

1

首先在公司的win8上安裝vs2013半點問題沒有
用vs2013打開之前用vs2012下創建的項目提示不好用
願意是我忽略的升級配置文件的選項。

2

嘗試微軟提供的項目管理軟體:TFS,申請微軟的免費伺服器。
發現功能太強大,適合大項目的項目管理,但我只需要源代碼管理就行。
放棄,嘗試git。

3

被vs2013打開過的cocos2dx項目,在2012中打開又報錯了。
看來需要徹底升級了。

4

下載解壓cocos2dx3.0beta版本。
使用create_project.py創建項目比之前友好了
因為換成了圖形界面
不過先進命令行的方式還是太麻煩
我們建個快捷方式:
建一個bat文件
輸入D:\java\cocos2d-x-3.0beta\tools\project-creator\create_project.py

5

cocos2dx3.0beta建的新項目比之前大了
因為他直接把編譯所需代碼拷貝到項目文件夾
而且可建立在任意位置

6

新項目建立之後vs2013運行ok
於是拷貝到github的本地代碼庫下
上傳(幾百M,略大,稍等)
上傳ok之後直接打開本地代碼庫下的sln文件
此時,vs2013會自動配置好git
骨頭實驗了一下提交到本地和提交到伺服器功能
ok

7

回家搗鼓筆記本安裝vs2013
(win8.1已裝vs2012)
老報核心什麼什麼的錯
搜了網上幾乎所有的辦法:管理員、換顯卡驅動、打補丁(個人不喜歡一切win的補丁)
還是不成功
於是系統還原到一個沒裝vs2012的ghost
可以安裝了(不計較了 vs那麼大,有點問題可以理解)

8

裝完vs2013就開始裝python裝cygwin
結果到後來發現好像不需要cygwin了
cmd進入到proj.android下
虛緩仔敲入 python build_native.py 命令cmd開始編譯
省去了之前版本需要用cygwin編譯而且需要修改文件許可權的步驟
心驚膽顫的直到發現 so文件ok

9

eclipse打開其中的android項目
導入不報錯,運行黑屏。
果然沒那麼幸運
網上一搜說需要:
把cocos2d-x-3.0beta/cocos/2d/platform/android/java/src/org/cocos2d-x/lib整個文件夾拷貝到你的項目下proj.Android/src/org/cocos2d-x下
感覺這個步驟完全可以新建cocos2dx項目時腳本自動加上
應該是錯誤漏掉了
估計下次升級就不需要手動加了
加上之後再次運行哪扒
終於看到熟悉的土豆了

10

下一步就差汪是在建一個cocos2dx的源碼管理
由於之前試驗過
應該沒啥問題
就不加到流水帳了

11

回家搞vs2013和github果然有問題。
主要是新的cocos2dx3.0beta生成的項目太大了
空項目編譯運行一次竟然高達800多M
於是學習了下git的配置文件的使用:
.gitignore
關鍵是這個文件正常來說windows不讓建立
多敲一個。就行。

4. cocos2dx 3.10 事件機制

cocos2dx的事件機制里存在三類: Event、EventListener、EventDispatcher
先理解一下它們之間的關系
當我們按下按鈕時(Event),會觸發一個特定的事件(EventListener相當於回調函數),而這個特定的事件又存儲在EventDispatcher里,可能按下這個按鈕會觸發多個事件,而事件的先後就是靠EventDispatcher來決定的。

Event的相關類

當出現來自滑鼠,鍵盤,觸屏,搖桿等輸入源的輸入時,這個事實稱之為事件

引擎無時無刻都在感受事件。

Event

可以看出Event主要包含三個變數,一個是事件類型_type(也就是定義的枚舉類型:觸摸、鍵盤等),isStopped判斷事件是否停止,只要事件停止,其相關的Listener都要停止callback調用。

EventTouch
它對應於四種觸摸操作,不同的EventCode可以告訴Listener來調用不同的callback。

EventCustom
它是用戶自定義事件,userData記錄用戶自定義數據,另一個eventName是用戶給事件取的別名

上面的源碼都有英文注釋,我就不多解釋了,我只說一個最重要的_isRegistered,它判斷事件有沒有被注冊,如果沒有被注冊就不會觸發。(如何注冊事件?將事件加入dispatcher)

在講它之前,我們先了解一下它的一個重要變數。

sceneGraphListeners: 一個事件(比如說觸摸事件),需要按照一定的響應序列,依次對這些Node進行事件響應,所以該類型的事件都會綁定一個與此相關聯的node,並且 響應順序是與node在scene下的zorder相關的 。該類型下的事件優先順序統一為0。(與渲染樹有關)

fixedListeners: 優先順序根據 fixedPriority 的數值從小往大排序、

只要出現了刪除,修改,添加監聽器的時候,監聽器列表需要重新排序,都需要設置相應的 DirtyFlag 操作。但是 Cocos-2dx v3.10 裡面的 updateListeners 函數有刪除監聽器的操作,然而並沒有設置相應的 DirtyFlag 操作。
會拋出下面的異常

Gt0Index() 方法其實就是獲取到當前監聽器中 fixedPriority == 0 的監聽器在監聽器向量中的位置,它 只有在給 Listener 排序的時候會設置,但是如果更新了對應 ListenerID 的向量(EventListenerVector),但是沒有重新排序,就會出現 _gt0Index 未及時更新的情況 ,導致拋出這個異常。

引用:
Cocos2dx游戲引擎(3.x)----新的事件分發機制
cocos2dx之event事件(一)
cocos2dx之event事件(三):事件分發器EventDispatcher
Cocos2dx-v3.10 事件分發機制源碼解析

5. 網狐經典版 cocos2dx 怎麼對接

網狐經典版 cocos2dx 怎麼對接
上面的步驟完成以後,我們就有了一個簡單的COM服務程序,而且已經被注冊到當前系統中。
下面我們要完成一個簡單的COM客戶程序。一個COM客戶程序簡單地說是使用COM組件對象的程序。客戶程序調用COM對象的基本流程是:
創建COM對象的實例。這可以通過調用Windows系統的API函數CoCreateInstance來完成。
通過介面調用函數。
調用IUnknown::Release釋放COM對象實例
我們的客戶程序是使用MFC編寫的一個基於對話框的簡單應用程序。具體的過程如下:
1.打開Visual C++集成開發環境;

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:637
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:366
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:82
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:307
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:789
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:339
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:210
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:810
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:364
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:590