cocosjs源碼
A. Cocos Creator 怎麼用js代碼實現微信授權登陸
btnsetBright(false)先給btn設置禁用狀態的圖片,然後選中這個btn時,該btn調用上面的方法並設置成false。如果取消的話可設置成true。Cocos Creator 怎麼用js代碼實現微信授權登陸
B. cocos js 怎樣做出按鈕選中效果
cocos js 做出按鈕選中效果示例:
一,首先使用cocos新建一個Cocos2d-js的新項目,然後再cocostudio中創建一個場景,在場景中添加三個按鈕分別設置三態的圖片
C. cocos中js代碼if比較大小失效
這種情況應該是您在此之前的代碼有錯誤的地方,才導致無法運行到這個地方。
D. 合並並文件中info.json和bin
修改cocos源碼。
將生成的所有json文件內容合並成一個大的json object,格式:{"json1文件名":"json1文件內容", "json2文件名":"json2文件內容" 。
將這些json文件內容合並,然後將合並後的內容預置到main.js中,修改cocos源碼,判斷如果請求的是asset json則從預置的main.js中讀取出來,避免網路請求;
E. cocos游戲源碼怎麼用
cocos游戲源碼使用方法如下:
1、啟動CocosCreator。
2、選擇打開其他項目。
3、點擊打開按鈕,CocosCreator編輯器主窗口打開即可。
F. cocos creator怎麼寫邏輯
主要兩個js源碼:
HelloWorld.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
cc.Class({
extends: cc.Component,
properties: {
label: {
default: null,
type: cc.Label
},
text: 'Hello, World!',
t_prefab:{
default:null,
type:cc.Prefab
},
t_sprite:{//定義一個cc的類型,並定義上常用屬性
default:null,
type:cc.SpriteFrame,//類型的定義
// url:cc.Texture2D, //Raw Asset(cc.Texture2D, cc.Font, cc.AudioClip)
visible:true,//屬性檢查器中是否可見
displayName:'himi',//屬性檢查器中屬性的名字
tooltip:"測試腳本",//屬性檢查器中停留此屬性名稱顯示的提示文字
readonly:false,//屬性檢查器中顯示(readonly)且不可修改[當前有bug,設定只讀也能修改]
serializable:true,//設置false就是臨時變數
editorOnly:false//導出項目前剔除此屬性
},
t_url:{
default:null,
url:cc.Texture2D
},
t_count_2:200,//基礎類型
//可以只定義 get 方法,這樣相當於一份 readonly 的屬性。[當前有bug,只設定get也能修改]
t_getSet:{
default:12,
get:function(){return this.t_getSet},//get
set:function(value){this.t_getSet =value;}//set
},
t_array:{//定義一個數組
default:[],
type:[cc.Sprite]
}
},
// use this for initialization
onLoad: function () {
//--->>> 獲取組件的幾種形式:
//1. 通過屬性檢查器被賦值的label組件,直接拿到得到實例
//2. 通過屬性檢查器被賦值的label組件所在的node節點,然後通過getComponent獲取
// this.label.string = this.text;
//3. 獲取當前this(node)節點上的label組件
// var _label = this.getComponent(cc.Label);
//4. 先獲取目標組件所在的節點,然後通過getComponent獲取目標組件
var _label = cc.find("Canvas/label").getComponent(cc.Label);
//5.也可以如下形式【注意此種方式,目前有BUG,無法正常使用 (0.7.1) 】
// var _label = cc.find("Canvas/label<cc.Label>");
console.log(_label.string);
console.log(this.t_getSet);
//--->>>全局變數的訪問
/* 任意腳本中定義如下:【注意不要有var哦】
t_global = {
tw:100,
th:200
};
*/
t_global.th = 2000;
console.log(t_global.th);
//--->>>模塊之間的訪問
/*任意腳本中定義如下 【注意關鍵字是mole.exports】
mole.exports= {
tme_pa1:"100",
tme_pa2:333221
};
*/
//--->>>用 require + 文件名(不含路徑) 來獲取到其他 模塊 的對象
var tMoleData = require("testJs");
tMoleData.tme_pa2 = 991;
console.log(tMoleData.tme_pa2);
//--->>>在當前節點下添加一個組件
var mySprite = new cc.Node().addComponent(cc.Sprite);
mySprite.spriteFrame = this.t_sprite;
mySprite.node.parent = this.node;
mySprite.node.setPosition(300,200);
//--->>>復制節點/或者復制 prefab
//復制節點
var lLabel = cc.instantiate(this.label);
lLabel.node.parent = this.node;
lLabel.node.setPosition(-200,0);
//復制prefab
var tPrefab = cc.instantiate(this.t_prefab);
tPrefab.parent = this.node;
tPrefab.setPosition(-210,100);
//--->>> 銷毀節點(銷毀節點並不會立刻發生,而是在當前 幀邏輯更新結束後,統一執行)
if (cc.isValid(this.label.node) ) {
console.log("有效存在,進行摧毀");
this.label.destroy();
}else{
console.log("已摧毀");
}
//--->>> 事件監聽 on 4種形式
//枚舉類型注冊
var tFun =function (event){
console.log("touchend event:"+event.touch.getLocation().x +"|"+event.touch.getLocation().y);
};
this.node.on(cc.Node.EventType.TOUCH_END,tFun,this);
//事件名注冊
// var tFun =function (event){
// console.log("touchend event");
// };
// this.node.on("touchend",tFun);
// this.node.on("touchend",function (event){
// console.log("touchend event");
// });
// this.node.on("touchend",function (event){
// console.log("touchend event");
// },this);
// this.node.on("touchend",function (event){
// console.log("touchend event");
// }.bind(this));
//--->>> 一次性的事件監聽 once
// this.node.once("touchend",function (event){
// console.log("touchend event");
// });
//--->>> 關閉監聽
this.node.off("touchend",tFun,this);
//--->>> 發射事件(事件手動觸發)
this.node.on("tEmitFun",function (event){
console.log("tEmitFun event:"+event.detail.himi+"|"+event.detail.say);
//-->>> 事件中斷,如下函數阻止事件向當前父級進行事件傳遞
// event.stopPropagation();
});
this.node.emit("tEmitFun",{himi:27,say:"hello,cc!"});
//--->>> 動作,類似c2dx api 基本無變化
var mTo = cc.moveBy(1,-100, -200);
var mAction = cc.repeatForever(cc.sequence(cc.moveBy(1,-100, -200),mTo.reverse(),cc.delayTime(0.5),cc.callFunc(function(action,data){
console.log("action callback:"+data.himi);
},this,{tx:100,himi:"i'm action callback and bring data"})));
mySprite.node.runAction(mAction);
//暫停動作
mySprite.node.stopAction(mAction);
//--->>> 計時器 (component)schele (cc.Node 不包含計時器相關 API)
//參數: call funtion/interval/repeat times/delay time
//不延遲,永久重復
this.schele(function(){
console.log("schele log...");
},1);
//不延遲,有重復次數限定
// this.schele(function(){
// console.log("schele log...");
// },1,2);
//重復2次,重復間隔為1秒,延遲1秒進行
// this.schele(function(){
// console.log("schele log...");
// },1,2,1);
//一次性的計時器
var mySch =function(){ console.log("schele Once log..."); }
this.scheleOnce(mySch);
//取消定時器
this.unschele(mySch);
//--->>> url raw資源獲取
var mSf = new cc.Node().addComponent(cc.Sprite);
mSf.spriteFrame = this.t_sprite;
mSf.spriteFrame.setTexture(this.t_url);
mSf.node.setPosition(400,0);
mSf.node.parent = this.node;
mSf.node.setScale(0.5);
//獲得 Raw Asset 的 url
var mUrl = cc.textureCache.addImage(cc.url.raw("himi.png"));
console.log("raw asset url:"+mUrl);
},
// called every frame
update: function (dt) {
// if (cc.isValid(this.label.node) ) {
// console.log("有效存在,進行摧毀");
// }else{
// console.log("已摧毀");
// }
},
});
testJs.js
1
2
3
4
5
6
7
8
9
t_global = {
tw:100,
th:200
};
mole.exports= {
tme_pa1:"100",
tme_pa2:333221
};
G. cocos creator見縫插針源碼游戲結束的代碼邏輯
別玩游戲
H. 自學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
I. 【初學者求助】在cocos商店下載的游戲源碼怎麼用啊
需要cocos dx 編譯
J. 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/