導航:首頁 > 編程語言 > cocos2d引擎源代碼

cocos2d引擎源代碼

發布時間:2023-05-16 12:40:02

❶ cocos2d的歷史起源

1973年,Ricardo Quesada出生於阿根廷。
在Ricardo 12歲時,他母親為他購買了第一台電腦,一台Commodore 64。
剛開始,與其他孩子一樣,Ricardo將自己的精力放在電子游戲上,但在幾個月後,他購買了編程方面的書籍,開始學慣用BASIC語言編寫一些簡單的游戲。兩年後,Ricardo開始學習匯編語言。
在Commodore 64上,Ricardo製作了很多游戲並貢獻了一個游戲編輯器,而這台Commodore 64也陪伴了他長達6年之久。此後,Ricardo選擇了iAPX 286作為他的新夥伴。在他學習了C語言舉正後的幾個月,Ricardo在DOS系統下編寫了一些游戲Demo和一個游戲編輯器。
當然,他並不滿足於此,隨後Ricardo又開始涉足Linux系統,並將編輯器移植到Linux系統上,將匯編語言改成了C語言。Ricardo將Linux作為主要的操作系統用了很多年,並不斷地為開源社區貢獻代碼。此後他與一些志同道合的朋友一起學習了C++以及Python語言,並參加了一些開發大賽。在大學期間,Ricardo選擇了鍾愛的計算機科學專業,並不斷涉獵計算機安全、演算法、游戲架構、OpenGL等大量書籍。 2005年,Ricardo和朋友萌生了用Python語言 「一星期編寫一個游戲」的想法。在2005~2007年間,他們設計了許多種這樣的游戲。值得注意的是,每次在設計一個新的游戲時,其游戲引擎都是重新開發的。
2008年2月,他們在阿根廷Córdoba市附近的Los Cocos,決定基於以前的開發經驗,把技術進行整合,並組建了游戲引擎的原始開發團隊。一個月後,第一版的游戲引擎誕生了,根據其誕生地取名為Los Cocos。一個月後Los Cocos引擎發布了0.1版,其名稱從Los Cocos更名為Cocos2D。
團隊將研究成果在PyCon 2008和EuroPython 2008上都做了展示,2008年正值喬布斯公布發展iphone游戲的想法,因此他們決定抓住商機,在2008年吵答槐6月宣布跟iPhone平台進行接軌,並在當月就公布了用Objective-C編寫的Cocos2D for iPhone 0.1版,它與Python版的Cocos2D擁有相同的設計思路。截止到2008年12月,App Store上已有超過40個用Cocos2D引擎開發的游戲。
2009年,團隊設計了Cocos2D的世界編輯器Cocos2D-Python,這款所見即所得的編輯器使用起來十分升友方便。此時,Cocos2D的各種平台、各種編程語言移植版也開始涌現。
ShinyCocos(Ruby bindings)、Cocos2D-Android(Java based)、cocosNet(Mono based)都誕生了。同時,英國的設計大師Michael Heald為Cocos2D設計了新的LOGO,如圖1所示(此前Cocos2D的LOGO是一個奔跑的椰子)。

❷ 求cocos2d-x教程

cocos教程網路網盤免費資源在線學習

鏈接: https://pan..com/s/1lYZHKPPVuvBR4rddE1jasA

提取碼: e2ht

cocos教程 極客學院Cocos2d-x源碼 05_第5階段 項目實戰 04_第4階段 功能擴展 03_第3階段 常用功能 02_第2階段 基礎知識 01_第1階段 環境搭建 5 使用Eclipse在Ubuntu下搭建Cocos2d-x 3集成開發環境 4 Cocos Code IDE使用 3 Windows環境下Visual Studio 2013中搭建Cocos2d-x 3.1集成開發環境 2 Cocos2d-x3.1rc0項目創建及新功能介紹 1 WinMac環境Cocos2d-x開發環境搭建 06. HelloWorld示例詳解.webm 05. 在Mac平台編譯成Android程序.webm 04. Mac平台開發環境搭建.webm


❸ 手機游戲用Cocos2d游戲引擎的開發代碼如何保障不會被逆向破解

目前針對Cocos2d游戲引擎的開發代碼防逆向主要是通過隱藏lua腳本文件,根據愛加密介紹,通過隱藏lua腳本文件,可以保護代碼不被黑客給逆向,從而保護游戲邏輯的安全性。希望可以採納,謝謝!

❹ cocos 2d-x的代碼在cocos creator 中能運行嗎

cocos 2d-x的代碼在cocos creator 中能運行
Cocos2d-x只是一個游戲框架,並不局限於c++開發語言,其他主流編程語言都可以實現相應游戲開發。具體描述如下:
Cocos2d-x是一個開源的移動2D游戲框架,MIT許可證下發布的。這是一個C++ Cocos2d-iPhone項目的版本配磨。Cocos2d-X發展的重點是圍繞Cocos2d跨平台,Cocos2d-x提供的框架。手機游戲,可以寫在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容模賣搜。Cocos2d-x項目可以很容易地建立和運行在iOS,Android,黑莓Blackberry等操作系統中。Cocos2d-x還支持Windows、Mac和Linux等桌面操作系統,因此,開發者編寫的源代碼很容易在桌面操作系統中編輯和調試。
Cocos2d-x是MIT許可證下發布的開源游戲引擎,游戲開發快速、簡易、功能強大。2015年2月,觸控科技正式推出了游戲開發一站式解決方案cocos,將Cocos 2d-x、Cocos Studio、Cocos Code IDE等框架及工具整合在一起。
Cocos2d-x核心優勢在於允許開發人員利用C++、Lua及Javascript來進行跨平台部署,覆蓋平台包括iOS、Android、Windows Phone、Windows, Mac OSX 3及Tizen等等,省事省力省成本。
Cocos2d-x用戶不僅包括個人開發者和游戲開發愛好者,還包括許多知名大公司如Zynga、Wooga、Gamevil、Glu、GREE、Konami、TinyCo、HandyGames、IGG及Disney Mobile等。截止2013年9月,全球基於Cocos2d-x引擎的游戲下載量高達逾15億,其中許多還占據蘋果應用商店(AppStore)和谷歌應用商店(Google Play)排行榜。同時許多公司如觸控、谷歌、微軟、ARM、英特爾的工程師在Cocos2d-x領域也非常活躍。
另外,Cocos2d-x版本升級困難的問題,是許多開發者的一大苦惱,而經過整旦歷合的cocos,解決了Cocos2d-x的這一問題。升級cocos,其相匹配的Cocos2d-x也將自動進行升級,這極大的提高了開發效率,為開發者們帶來便利,同時也為Cocos2d-x的進一步發展打下基礎。

❺ 如何在cocos2d c++代碼中調用lua以及探究

如何在cocos2d c++代碼中調用lua以及探究,有需要的朋友啟穗可以參考下。

如何在cocos2d c++代碼中調用lua

在AppDelegate 中加入了
#include"Lua_extensions_CCB.h"
#include"CCLuaEngine.h"
#include"Lua_web_socket.h"

查到代碼加盯圓載lua腳步引擎
官方原話注冊引凱旁塌擎
CCLuaEngine*pEngine=CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);

和ccb有關的lua
CCLuaStack*pStack=pEngine->getLuaStack();
lua_State*tolua_s=pStack->getLuaState();
tolua_extensions_ccb_open(tolua_s);

和web_socket 相關的lua
pStack=pEngine->getLuaStack();
tolua_s=pStack->getLuaState();
tolua_web_socket_open(tolua_s);

pEngine->executeScriptFile("luaScript/controller.lua");
結束

打開luaScript/controller.lua仔細研究

-- avoidmemory leak
collectgarbage("setpause",100)
collectgarbage("setstepmul",5000)

require"luaScript/mainMenu"
----------------

-- run
local scene =CCScene:create()
scene:addChild(CreateTestMenu())
CCDirector:sharedDirector():runWithScene(scene)

到這里如果熟悉cocos2dx 的朋友就很熟悉了
不錯,這里是cocos2d中lua的使用方法和c++中調用差別不大!

但是還沒有完

Cocos2dx 對lua的封裝是很好的!

如果不熟悉c++與lua的綁定的代碼下面的不建議看
C++與lua的綁定傳送門

關於cocos2d 與 lua綁定的代碼的探究

//打開"CCLuaEngine.h"

單例實現CCScripEngineProtocol
後期應該支持不僅僅只是lua的腳本引擎

頭文件有很多方法

挑一個看看
virtualintexecuteNodeEvent(CCNode*pNode,intnAction);

intCCLuaEngine::executeNodeEvent(CCNode*pNode,intnAction)
{
intnHandler=pNode->getScriptHandler();
if(!nHandler)return0;

switch(nAction)
{
casekCCNodeOnEnter:
m_stack->pushString("enter");
break;

casekCCNodeOnExit:
m_stack->pushString("exit");
break;

:
m_stack->pushString("enterTransitionFinish");
break;

:
m_stack->pushString("exitTransitionStart");
break;

casekCCNodeOnCleanup:
m_stack->pushString("cleanup");
break;

default:
return0;
}
intret=m_stack->executeFunctionByHandler(nHandler,1);
m_stack->clean();
returnret;
}

這里是進入CCNode後的一些消息函數的處理

不管
intret=m_stack->executeFunctionByHandler(nHandler,1);

最終是回到了CCLuaStack

調用了executeFunctionByHandler(nHandler,1);

繼續探究

intCCLuaStack::executeFunctionByHandler(intnHandler,intnumArgs)
{
intret=0;
if(pushFunctionByHandler(nHandler)) /* L: ... arg1 arg2 ... func */
{
if(numArgs>0)
{
lua_insert(m_state,-(numArgs+1)); /* L: ... func arg1 arg2 ... */
}
ret=executeFunction(numArgs);
}
lua_settop(m_state,0);
returnret;
}

可以看到一些和lua與c++聯系的代碼了

看看這個類的初始化

boolCCLuaStack::init(void)
{
m_state=lua_open();
luaL_openlibs(m_state);
tolua_Cocos2d_open(m_state);
toluafix_open(m_state);

// Register our version of the global "print"function
constluaL_regglobal_functions[]={
{"print",lua_print},
{NULL,NULL}
};
luaL_register(m_state,"_G",global_functions);
tolua_CocoStudio_open(m_state);
#if(CC_TARGET_PLATFORM==CC_PLATFORM_IOS||CC_TARGET_PLATFORM==CC_PLATFORM_MAC)
CCLuaObjcBridge::luaopen_luaoc(m_state);
#endif
register_all_cocos2dx_manual(m_state);
register_all_cocos2dx_extension_manual(m_state);
register_all_cocos2dx_studio_manual(m_state);
// add cocos2dx loader
addLuaLoader(cocos2dx_lua_loader);

returntrue;
}

這個里的方法看名稱應該是注冊 coco2dx 中的類到
C++中

register_all_cocos2dx_manual(m_state);
register_all_cocos2dx_extension_manual(m_state);
register_all_cocos2dx_studio_manual(m_state);

詳細看
Coco2dx-studio 先不看

頭文件
lua_cocos2dx_manual.h

#ifdef__cplusplus
extern"C"{
#endif
#include"tolua++.h"
#ifdef__cplusplus
}
#endif

LUA_APIintregister_all_cocos2dx_manual(lua_State*tolua_S);

頭文件
lua_cocos2dx_extensions_manual
#ifdef__cplusplus
extern"C"{
#endif
#include"tolua++.h"
#ifdef__cplusplus
}
#endif

LUA_APIintregister_all_cocos2dx_extension_manual(lua_State*tolua_S);

驚人的相似
看看tolua++.h
真相快水落石出了

這里定義了lua所以用到全部函數

這里是頭部,
/* tolua
** Support code for Lua bindings.
** Written by Waldemar Celes
** TeCGraf/PUC-Rio
** Apr 2003
** $Id: $
*/

/* This code is free software; you can redistributeit and/or modify it.
** The software provided hereunder is on an"as is" basis, and
** the author has no obligation to providemaintenance, support, updates,
** enhancements, or modifications.
*/

原來tolua也是lua封裝起來的函數庫,大師2003 4月就寫好了
相當的牛

好上面只看了lua_cocos2dx_extensions_manual.h的頭文件
cpp文件我們也一看詳情
我發現注冊了一些函數
但是不是全部

在CCLuaStack::init()
方法里還有
tolua_Cocos2d_open(m_state);
這個方法
相應的頭文件是LuaCocos2d..h
可以打開看看詳情

Luacocos2d..cpp注冊了n多函數
我用注冊是相對於lua而言

Luacocos2d.cpp代碼賊多
有興趣的童鞋可以看看

看來什麼時間要看看cocos2d studio 的代碼
緊跟時代的步伐
不能老是cocos builder

❻ cocos2d的歷史起源

2005年,Ricardo和朋友萌生了用Python語言
「一星期編寫一個游戲」的想法。在2005~2007年間,他們設計了許多種這樣的游戲。值得注意的是,每次在設計一個新的游戲時,其游戲引擎都是重新開發的。
2008年2月,他們在阿根廷Córdoba市附近的Los
Cocos,決定基於以前的開發經驗,把技術進行整合,並組建了游戲引擎的原始開發團隊。一個月後,第一版的游戲引擎誕生了,根據其誕生地取名為Los
Cocos。一個月後Los
Cocos引擎發布了0.1版,其名稱從Los
Cocos更名為Cocos2D。
團隊將研究成果在PyCon
2008和EuroPython
2008上都做了展示,2008年正值喬布斯公布發展iPhone游戲的想法,因此他們決定抓住商機,在2008年6月宣布跟iPhone平台進搭稿行接軌,並在當月就公布了用Objective-C編寫的Cocos2D
for
iPhone
0.1版,它與Python版的Cocos2D擁有相同的設計思路。截止到2008年12月,App
Store上已有超過40個用Cocos2D引擎開發的游戲。
2009年,團隊設計了Cocos2D的世界編輯器Cocos2D-Python,這款所見即所運蔽得的編輯器使用起來十分方便。此時,Cocos2D的各種平台、各種編程語言移植版也開始涌現。
ShinyCocos(Ruby
bindings)、Cocos2D-Android(Java
based)知悄孝、cocosNet(Mono
based)都誕生了。同時,英國的設計大師Michael
Heald為Cocos2D設計了新的LOGO,如圖1所示(此前Cocos2D的LOGO是一個奔跑的椰子)。
cocos2d是一個基於MIT協議的開源框架,用於構建游戲、應用程序和其他圖形界面交互應用。可以讓你在創建自己的多平台游戲時節省很多的時間。
Cocos2D也擁有幾個主要版本,包括Cocos2D-iPhone、Cocos2D-X,以及被社區普遍看好的Cocos2D-HTML5和JavaScript
bindings
for
Cocos2D-X。同時也擁有了非常優秀的編輯器(獨立編輯器),例如SpriteSheet
Editors、Particle
Editors
、Font
Editors

Tilemap
Editors。
另外,2012年發布的CocoStudio工具集是開源游戲引擎Cocos2d-x開發團隊官方推出的游戲開發工具,目前已經進入穩定版。CocoStudio吸取了他們自己在游戲製作中的經驗,為移動游戲開發者和團隊量身定做,旨在降低游戲開發的門檻,提高開發效率,同時也為Cocos2D-X的進一步發展打下基礎。

❼ Cocos Creator 引擎源碼調試、修改

Cocos Creator 的引擎部分包括 JavaScript 、 Cocos2d-x-lite 和 adapter 三個部分,各部分對應源碼在(氏租Mac 版):

JavaScript:CocosCreator.app/Resource/engine(js 引擎)
Cocos2d-x-lite:CocosCreator.app/Resource/cocos2d-x(Cococ2d-x 引殲纖兆豎物擎)
adapter:CocosCreator.app/Resource/builtin/

❽ 請教Cocos Code IDE 的userDefault存放位置

這是 cocos2d-x 引擎裡面定的型睜,最新的版本是在各個平台笑讓的 writablepath 裡面卜升歲
建議看一下引擎源代碼中存取 UserDefault.xml 的函數

❾ 自學cocos2d js游戲開發應該按什麼步驟進行

跟你簡要說一下我的自學路,以免你走彎路

背景:
有工作,而且很忙;在不影響工作基礎上用業余時間鼓搗(經常會因為工作耽擱學習進度);基本沒技術背景(初中qbasic、高中pascal半吊子),大學文科,工作也不是搞代碼。因此我感覺我的自學路跟你還是挺契合的。

1
兩年前的一天,決定要做獨立游戲製作人。選定引擎cocos2d,開始學習objective-c語言;(如果你打算只在iOS平台開發可以學obj-c配合cocos2d或者sprite kit;如果打算跨平台就要用cocos2d-x和c++了;當然unity什麼的也不錯但是我還沒嘗試過,一直很嚮往)

2
我跳過了iOS程序開發(似懂非懂看完了斯坦福那一系列的教學視頻),結合當時情況直接選擇了cocos2d引擎,這時開始接觸 @吳一刀 推薦的博客;我主要看的是子龍山人<子龍山人 - 博客園>、Ray Wenderlich<Ray Wenderlich>、Himi<黑米GameDev街區>這些博客里最基本的例子,知易那個以我當時的水平還看不懂。

3
嘗試開始設計自己的簡單游戲,我做打地鼠!當然比教學例子里的打地鼠復雜多了

4
這個過程中發現自己懂的實在是不夠,所以又開啃這本書:Learn cocos2d 2 by Steffen Itterheim & Andreas Low

5
慢慢的發現需要一些趁手的工具和編輯器,並發展出一套自己構建於cocos2d之上的游戲設計架構。我目前的情況是這樣:

關卡編輯我使用plist文件配合自己寫的類;

sprite sheet使用TexturePacker<TexturePacker>;

動畫/UI編輯最初自己手寫太累,後來選擇了cocosbuilder,請注意現在這個軟體已經停止維護,轉而引導用戶使用SpriteBuilder<SpriteBuilder>(域名都做了自動跳轉;SpriteBuilder我木有研究過,建議你研究一下)。

粒子編輯我自己還沒實際用到,如果真正需要我感覺cocosbuilder的夠我用的。//更新:後來用到了ParticleDesigner和cocosbuilder兩個軟體的粒子編輯混搭

我當時遇到的一個大麻煩是如何讓cocosbuilder、cocos2d版本互相兼容且cocosbuilder無問題。大概情況是這樣:cocosbuilder2.1和cocos2d-iphone2.0及2.1版本都不協調怎麼辦?;What version of Cocosbuilder and Cocos2d-iphone should I choose?

目前我使用的cocosbuilder 2.1版本(漸變層有bug、並且很可惜動畫播放完沒有觸發消息的機制,我只好把每個動畫時長都手動記錄一下自己處理)

======3月12日更新======
在 @GarfieldKwong 指點下發現這個版本動畫播放完是可以觸發消息機制的,更高級版本3.x支持的效果應該是在動畫中就加入callback的關鍵幀
新技能get√

具體代碼可見下面學習案例的第一個例子里Explosion部分
=====================

cocosbuider的學習可以看兩個例子Creating a Game with CocosBuilder;Introction to CocosBuilder;然後就是多用多嘗試。

6
整個學習過程要學會查資料、學會尋求幫助,我主要用的stackoverflow(話說剛剛發現stackoverflow的reputation喜過15,終於可以投票了:)

在學習過程中得到了子龍山人(我認為本尊是這位 @屈光輝 )、LearnCocos2d作者Steffen、 @kubisoft 以及眾多網上朋友的幫助,再次表示感謝。

7
硬體及開發者資格:看完c++開始看obj-c,這個過程一直是使用的vmware虛擬機安裝的mac系統寫程序;然後入手一個最便宜的mac pro、以及iPhone,嘗試玩各種游戲;從看c++開始大約過了1年半(已經有非常簡陋的游戲demo)才真正購入iOS開發者資格並開始真機測試。

8
嘗試過的一些其他工具、各種彎路和坑、以及發散內容:
可以拖拽方式寫代碼的stencyl <Stencyl: Make iPhone, iPad, Android & Flash Games without code>;
最初學的不是ojc-c而是譚浩強老師的c++程序設計(雖然有人不喜譚老師,但那書是中文的讓我對面對對象程序設計有一些初步的概念,再看英文的obj-c不至於太摸不著頭腦,反正手頭正好有這么一本買了6年沒看的c++。。。);
嘗試過<Tiled Map Editor>但自己目前的坑沒有用到;
嘗試過一點物理引擎和粒子,但自己目前的坑沒有用到;現在粒子用到了,做了火焰等效果,也挺美的;但是一定要注意CPU佔用優化,內存方面我最低支持4S沒遇到大問題

學習音樂製作,這個我小時候學琴一直也喜歡音樂所以有一點點底子,如果沒有基礎可能上手有門檻;開始用的軟體LMMS,但是音源插件在64位系統的問題我一直沒解決掉時間精力也不多,所以是暫時停滯了;最近發現Garage Band可能也可以寫歌;另外還試過一個很有歷史的微軟的音樂自動編輯器,很好玩,用來做背景音樂也不錯。

入手手繪板學畫畫(這中間糾結了好久才決定用點陣圖不用矢量圖),如果你能找到熱愛游戲的美術同學一起搞那最好不過。但是我一直對畫畫心癢難搔。。。所以入了這個深坑,曬一曬:
轉載
z

閱讀全文

與cocos2d引擎源代碼相關的資料

熱點內容
cad新文件能找回來嗎 瀏覽:951
導出手機qq文件到u盤 瀏覽:456
電腦如何打開ppt文件怎麼打開方式 瀏覽:782
魅族鎖定區文件夾 瀏覽:357
刻字cnc怎麼編程 瀏覽:182
學校的網路拓撲結構圖 瀏覽:784
收集100個pdf文件里關鍵詞 瀏覽:594
蘋果關閉4g網路設置 瀏覽:289
如何監測資料庫 瀏覽:967
拷貝過來的pdf文件 瀏覽:751
抖音小店的訪客數據怎麼看 瀏覽:670
怎麼把c語言編程的字元向下移動 瀏覽:786
sql刪除文件組代碼 瀏覽:978
安卓post請求多重json 瀏覽:776
微信消除數據怎麼恢復 瀏覽:918
小米刷機顯示系統找不到指定文件 瀏覽:528
蘋果手機小風扇圖app叫什麼 瀏覽:292
繁體中文輸入工具 瀏覽:916
pc桌面壁紙文件夾 瀏覽:473
微信怎麼添加群 瀏覽:781

友情鏈接