A. cocos js 怎樣做出按鈕選中效果
cocos js 做出按鈕選中效果示例:
一,首先使用cocos新建一個Cocos2d-js的新項目,然後再cocostudio中創建一個場景,在場景中添加三個按鈕分別設置三態的圖片
B. cocos-js 白鷺引擎哪個好
曾經cocos的腦殘粉,從1.x開始用,2.x後的每出一個版本,我都會激動地第一時間下載下來編譯看看多了什麼新內容。然而很多時候正式版都編譯不了,beta版就更是慘不忍睹了,至於引擎內部的坑,那就更列舉不完了。
每次發布新版本,總是引入一堆BUG,之前能用的又不能用了。cocos最坑的地方是許多官方吹上天的功能也就騙騙新手入坑,根本不能用,一堆BUG,比如cocostudio, cocoside,給我的感覺是引擎官方的態度問題,未來也不會有好轉。
目前在做的游戲不用cocos了,以後也不會選擇用cocos的項目,多了些思考游戲該怎麼做的時間,少了些和引擎勾心鬥角的時間,生活美好了許多~PS:最近看到某位開發者升級最新版本3.8的經歷,你們感受下~
C. cocos和Cocos Code IDE 之間怎麼理解更好
Cocos2d
Python
桌面操作系統
Cocos2d-iphone
Objective-C,
javaScript
iOS
Cocos2d-x
C++,
Lua,
JavaScript
參見支持平台和編程語言部分
Cocos2d-html5
JavaScript
支持HTML5的瀏覽器
ShinyCocos
Ruby
iOS
Cocos2d-windows
C++
Windows
XP/7
Cocos2d-android
Java
Android
Cocos2d-android-1
Java
Android
Cocos2d-xna
C#
Microsoft
and
MonoGame
platforms
Cocos2d-javascript
JavaScript
支持HTML5的瀏覽器
Cocos-net
C#
Mono-supported
平台
Cocos3d
Objective-C
iOS
實際上很簡單,一站式是指從這里開始,cocos會引導你們提供各種的支持,cocos
2d-x支持多個語言,C++,LUA(quick作為lua版本的典型,現在已經和cocos
2d-x主版本進行了合並),javascript(cocos-js)
codeide是增強式的代碼工具服務
1:cocos2d-x
既然支持C++,Lua,JavaScript,為什麼還有quick和cocos-JS??
你可以這么理解:cocos2d-x
+
js綁定就是
cocos-JS,cocos2d-x
+
lua綁定就是
quick
2:cocos所說的一站式解決方案怎麼理解?用cocos開發和cocos
Code
IDE開發方式和過程有什麼不同??
cocos所說的一站式解決方案
你可以把它理解為一個很像
Unity
的東西。
之前都說cocos2d-x工作流沒有unity好,現在
cocos
就是把引擎以及周邊的所有工具集合起來,方便大家使用的一個東西。
「Unity
是一套解決方案,而
Cocos2d-x
僅僅是一個庫。」
cocos
現在就是一套解決方案啦。
cocos
Code
IDE看名字就知道是一個IDE啊,實際上就是Eclipse
+
一些插件,寫代碼用的。
D. egret 和cocos2d-x-js哪個目前更穩定更好用
如果大型游戲,強烈建議不要使用cocos2d-js
我們目前的幾個項目都是cocos2d-js開發的,我打算把這幾個項目轉egret。有如下幾個理由:
1、cocos ide有BUG:斷點會崩潰、代碼提示很差、內存太高、虛擬機的菜單欄會影響事件(迭代了很多版本,這菜單欄BUG都沒修復)
2、studio的工作流在幾個引擎中是最差的,而且有BUG。經常和實際表現不一致。而且內存佔用大,會崩潰。不能繼承(這個問題最嚴重,不能繼承按鈕,那麼按下縮放等高級功能就很蛋疼)。
3、
架構太差。寫點小功能沒事,如果想寫大型游戲,這套架構會讓你抓狂!比如最簡單的按鈕事件,我必須在事件方法裡面加個觸摸類型判斷。一個很簡單的點擊,就
多出很多這種相似的代碼!4、UI有好幾套,然而每一套都有BUG。CCUI的設計也是很糟糕的!同時也是崩潰的罪魁禍首。
5、引擎BUG問題,
很多BUG會讓你欲哭無淚,比如坐標會出現undefined。再比如熱更新的BUG,XCODE編出的包默認是js而不是jsc,當這個包發布商店就會
出現不能熱更新的問題,同時也進不去游戲,卡在了熱更新界面。(這個問題導致我們流失了3個月的用戶,知道蘋果商店通過審核位置),再比如
java/objectc和js的交互,這個都有問題!再比如:ios第三方輸入法會導致崩潰!
6、工作流問題,IDE的斷點的觀察變數很不友好、studio導出的配置很大、studio擴展性很差。在IDE 1.2版本出來之前,我們團隊甚至無法斷點,只能列印日誌來debug。
7、工作效率問題,代碼提示先不談。我實現一個簡單的列表都能折騰很久,那ccui的list真是太不好用!除此之外,裁剪、遮罩這些只需要一行的代碼,在cocos下面需要無數行!
8、
引擎升級問題:cocos大概一個月1個升級,egret是2周。然而cocos升級會帶來大量的新BUG,而且兼容性很差。導致我們現在還用3.0版
本。最蛋疼的是,官方的3.6版本又不能斷點了!3.0升級到3.6還會導致布局混亂、九宮失效、崩潰閃退(絕對不是代碼問題這個解釋了)!基本上
cocos每加個新功能都會帶來無數新BUG,老BUG修復量也少,我論壇反饋的問題經常需要迭代2到3個版本才修復,下個版本修復是不可能。而
egret不僅迭代快,BUG修復也勤快!也很少有一些導致產品質量的驗證BUG。
9、官方人員態度問題:我在cocos論壇發的BUG反饋,過了7天才有人來回復。地址(從3.0到3.1和3.2的BUG,官方幫忙看下),再看下egret我發的BUG反饋,當時是下班時間,然而第二天一早就回復我了。地址(Egret社區-BUG列表)
10、API問題:cocos經歷了3個大版本,官方API文檔也有的API,實際盡然是沒有的,官方回復是還沒加入js綁定。
11、跨平台問題:cocos2d-js經常是HTML5和JSB表現不一致。導致我們現在只能專注JSB而放棄HTML5版本。egret很少有這個問題。
12、
性能問題:先拋開runtime。如果你用了ccui,那麼我100%保證你的cocos2d-js的性能會被egret秒殺。再來說下native下面
的性能對比,cocos的人說egret是js寫的邏輯,而他們是綁定。那麼問題來了,在現在,js的邏輯產生的性能壓力一點都不是問題(參考
node.js,能用js寫伺服器了都)。主要的性能壓力其實是在渲染上面,而他們2個都是opengl作為渲染的。如果用了ccui,那麼還是被
egret秒殺。那ccui帶來的drawCall真是太!!再來談runtime,egret現在很多瀏覽器都集成了runtime(可以opengl
渲染代替canvas渲染),而cocos-js只是說在合作,已經慢了一步。
13、產品路線圖問題:cocos的幾個產品一心在弄3D,egret都已經自己搞了一個IDE了。開發基本的生活cocos都沒保障好,就去想和u3d打架!
14、內部問題:cocos估計內部很不和諧,ide據說是1個人在開發,studio是30個人(30個人整出這東西),而且studio是用的.NET搞的,跨平台最呵呵的技術!QT、AIR那些那麼多高效率,擴展性強的技術不用,選了個.NET。。。。
---------------------------------------------------------------------------------------------------------------------------------
題
外話:說了那麼多cocos的不是,我也曾試著愛過它,我甚至開發了一個和egret
wing一樣的UI編輯器,寫了個和Flash/Flex一樣的API(egret用的這套,這種架構很好用,簡單明了)。其中UI編輯器還加上了
unity3d那種綁定腳本的功能。然而因為cocos底層的一些令人發狂的BUG,我最終是放棄了。有egret這個車子在,我還造什麼輪子?我打算把
手裡頭的這套cocos的東西開源。然後去整egret去!
---------------------------------------------------------------------------------------------------------------------------------
再來個題外話:
游戲引擎cocos2d-js和egret 對比
這
個是網路搜索第一的對比,裡面說cocos2d的工具比egret多,我不否認,但是能用的基本沒有。而egret的工具很穩定。就拿最簡單的骨骼動
畫,cocos連龍骨都不支持,studio裡面的骨骼設計也是坑的不行,egret的骨骼設計工具從界面和實用性都已經完爆studio了!
再來說上面的地址裡面的成功產品:捕魚達人、DOTA傳奇、我叫MT那都是cocos2dx寫的,和js版本一點關系都沒有!請問你有見過網頁版的刀塔傳奇么?
上面的開發語言對比,大項目來說,ts真的是完爆js!js那不小心就會出錯真心不適合大項目,不然微軟不會造這個輪子。
上面的參考資料對比,cocos2d-js的文檔連參數的注釋都沒,和c++文檔作參考也不行,很多參數是不一致的!而egret在開發工具裡面就繼承了中文的幫助。
從目前狀況看,今年絕對是egret產品井噴的一年,不信走著瞧!cocos真是把我坑慘了!
---------------------------------------------------------------------------------------------------------------------------------
再
次申明,請拿cocos2d-js或者JSB的大作出來,不用拿2dx的東西。說到2dx,你們再去了解下,榜單上,有幾個人是沒改過引擎源碼的,有幾個
游戲能隨著cocos引擎升級而升級。用studio的又有幾個。並不想和王哲斯逼,只是希望你們能正視BUG,提高體驗。如果好,我們團隊會考慮
cocos技術的,否則只能用egret和unity3d了。我說cocos這么多不是,也是希望他成長,能給開發者帶來更多利益,帶來更多方便,而不是
各種無厘頭的問題,各種蹩腳的手段去開發。還有,我說的這幾點,@王哲
你接招,如果我不說出這些BUG,這些問題,那麼估計還不一定改。egret同樣有個人叫王澤,然而他的理念完全當我們開發者是用戶,提高開發體驗,這個
很重要的。
E. 如何使用Code IDE調試Cocos2d-JS開發的游戲
運行、測試游戲
1. 新建一個名為 CocosJSGame 的 Cocos JavaScript 工程
2. 點擊工具欄上的 debug 按鈕
3. 默認情況下腳本會運行在我們提供的 mac 版本預編譯 runtime 上。為了簡單起見,我們不對默認值進行任何改動。如果你想要在其他我們支持的目標平台上調試程序,可參考下文的「在其它目標平台上調試」
如何調試
斷點支持
可以在 javascript 腳本文件中增加斷點
當斷點被觸發時選擇 「Yes」 打開 Debug Perspective 透視圖,可以看到很多與調試相關的視圖,調用棧、變數和斷點等等。
支持 Step over, Step into, Step out 等調試方式。
代碼熱更新
想更改右下角的 close 按鈕的位置?closeItem.attr 方法是控制該按鈕的顯示位置的。
closeItem.attr({
x: size.width - 20,
y: 20,
anchorX: 0.5,
anchorY: 0.5
});
修改「x」上面的值,把"size.width-20" 改成 ""size.width/2" 然後保持修改, 你會發現,在沒有重啟的情況下 close 按鈕的位置已經改變了,在屏幕底部的中間!
在其他目標平台上調試
通過工具欄上的打開 Debug Configurations 打開 Debug Configurations 頁面
在頁面的左側,選擇之前我們為你創建的名為CocosJSGame的configuration
在 iOS Simulator 上調試
選擇iOS Simulator單選項
選擇正確的runtime app
點擊 Debug 按鈕,預編譯的 runtime 會被自動安裝到模擬器中
在iOS設備上調試
首先,你需要一個 runtime IPA, 從 1.0.0-rc1 版本開始,你可以通過 Code IDE 自己編譯一個,然後安裝IPA到設備中
在 iOS 設備上啟動 runtime
在 "Debug Configuration" 界面選擇 Remote Debug 單選項
platform 選擇 "iOS"
將設備的 ip 地址填寫在 Device IP 上
最後點擊Debug按鈕
在 Android 設備上使用 ADB 模式調試
在 "Debug Configuration" 界面選擇 Android ADB Mode 單選項
選擇正確的 runtime apk
點擊Debug按鈕
IDE 會自動安裝配置中的 runtime apk 到你的連接設備上並啟動runtime開始調試
在 Android 設備上使用網路模式調試
手動安裝 runtime 到你的設備上,它被存放在 CocosLuaGame/runtime/android 目錄中
手動啟動 runtime,停留在 waiting 頁面
在 "Debug Configuration" 界面選擇 Remote Debug 單選項
platform 選擇 "Android"
將設備的 ip 地址填寫在 Device IP 上
點擊Debug按鈕
如何調試C++
從 1.0.0-rc1 版本開始,支持使用 XCode/Visual Studio 調試 C++ 代碼的同時使用 Cocos Code IDE 調試 C++ 代碼。
以調試 Mac 為例:
如果你還沒有 C++ 代碼,那麼需要先添加(右擊工程,Cocos Tools->Add Native Codes Support...)
使用 Xcode 打開 frameworks/runtime-src/proj.ios_mac 工程,並啟動調試
回到 Cocos Code IDE,打開 "Debug Configuration" 頁面,選擇 Remote Debug 單選項
platfrom 選擇 「Mac」
Target IP 填寫 "127.0.0.1"
點擊Debug按鈕..