目前项目,使用了Lua脚本,至于使用Lua的好处不再赘述了。于是对Tolua做了一些小小的学习,总结一下吧。
主要说一下如何在Lua中调用C++方法。
Lua调用C++的桥梁,是tolua。tolua是什么,http://blog.csdn.net/killwd/article/details/1423923 这篇文章介绍的很详细。
我们需要手动做的,其实便是编写中间类,这个类被tolua直接使用,最终的目的是实现lua中对象方法和C++中对象方法的对应。
LuaCocos2d.cpp 完成了所有基本的cocos对象方法的转换,我们把它称之为一个桥梁。LuaCocos2d.cpp 是在CCLuaStack 中的init函数中调用的。
1 |
tolua_Cocos2d_open(m_state); |
1.CCLuaStack 中调用中间桥梁(比如LuaCocos2d)
2.桥梁里面(比如LuaCocos2d)实现各种方法的转换
这样,整个的重点就是桥梁的生成了。
看一下LuaCocos2d ,最重要的方法我认为是tolua_reg_types。
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
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291 |
/* function to register type */ static
void
tolua_reg_types (lua_State* tolua_S) { tolua_usertype(tolua_S, "CCTransitionProgressOutIn" ); tolua_usertype(tolua_S, "CCControlSaturationBrightnessPicker" ); tolua_usertype(tolua_S, "CCShaky3D" ); tolua_usertype(tolua_S, "CCTransitionTurnOffTiles" ); tolua_usertype(tolua_S, "CCTransitionShrinkGrow" ); tolua_usertype(tolua_S, "CCFadeOutBLTiles" ); tolua_usertype(tolua_S, "CCProgressFromTo" ); tolua_usertype(tolua_S, "CCActionCamera" ); tolua_usertype(tolua_S, "CCFlipY3D" ); tolua_usertype(tolua_S, "CCLinkPosition" ); tolua_usertype(tolua_S, "CCEaseExponentialIn" ); tolua_usertype(tolua_S, "CCApplication" ); tolua_usertype(tolua_S, "CCControlHuePicker" ); tolua_usertype(tolua_S, "CCScaleTo" ); tolua_usertype(tolua_S, "CCTransitionFlipAngular" ); tolua_usertype(tolua_S, "CCEaseElasticOut" ); tolua_usertype(tolua_S, "CCAccelDeccelAmplitude" ); tolua_usertype(tolua_S, "CCDisplayData" ); tolua_usertype(tolua_S, "CCParticleRain" ); tolua_usertype(tolua_S, "CCTransitionSlideInB" ); tolua_usertype(tolua_S, "CCKeypadDispatcher" ); tolua_usertype(tolua_S, "CCDelayTime" ); tolua_usertype(tolua_S, "CCOrbitCamera" ); tolua_usertype(tolua_S, "CCLabelTTF" ); tolua_usertype(tolua_S, "CCScale9Sprite" ); tolua_usertype(tolua_S, "CCMoveTo" ); tolua_usertype(tolua_S, "CCTransitionSplitRows" ); tolua_usertype(tolua_S, "CCFollow" ); tolua_usertype(tolua_S, "CCMovementData" ); tolua_usertype(tolua_S, "CCBlink" ); tolua_usertype(tolua_S, "CCTexture2D" ); tolua_usertype(tolua_S, "CCTouch" ); tolua_usertype(tolua_S, "CCParticleSystemQuad" ); tolua_usertype(tolua_S, "CCTransitionMoveInB" ); tolua_usertype(tolua_S, "CCToggleVisibility" ); tolua_usertype(tolua_S, "cc_timeval" ); tolua_usertype(tolua_S, "CCTMXTilesetInfo" ); tolua_usertype(tolua_S, "CCParticleSun" ); tolua_usertype(tolua_S, "CCScene" ); tolua_usertype(tolua_S, "CCArmatureDataManager" ); tolua_usertype(tolua_S, "CCFadeIn" ); tolua_usertype(tolua_S, "CCTransitionFadeDown" ); tolua_usertype(tolua_S, "CCWavesTiles3D" ); tolua_usertype(tolua_S, "CCFadeOutDownTiles" ); tolua_usertype(tolua_S, "CCComponentContainer" ); tolua_usertype(tolua_S, "CCTMXTiledMap" ); tolua_usertype(tolua_S, "CCCardinalSplineBy" ); tolua_usertype(tolua_S, "CCTransitionZoomFlipAngular" ); tolua_usertype(tolua_S, "CCFlipY" ); tolua_usertype(tolua_S, "CCProgressTo" ); tolua_usertype(tolua_S, "CCReuseGrid" ); tolua_usertype(tolua_S, "CCShow" ); tolua_usertype(tolua_S, "CCEaseRateAction" ); tolua_usertype(tolua_S, "CCEaseBackIn" ); tolua_usertype(tolua_S, "CCTransitionScene" ); tolua_usertype(tolua_S, "CCGridAction" ); tolua_usertype(tolua_S, "CCFiniteTimeAction" ); tolua_usertype(tolua_S, "CCSpriteFrameCache" ); tolua_usertype(tolua_S, "CCMotionStreak" ); tolua_usertype(tolua_S, "CCAnimate" ); tolua_usertype(tolua_S, "CCTiledGrid3DAction" ); tolua_usertype(tolua_S, "CCPointArray" ); tolua_usertype(tolua_S, "CCTransitionProgressHorizontal" ); tolua_usertype(tolua_S, "CCRectShape" ); tolua_usertype(tolua_S, "ccColor3B" ); tolua_usertype(tolua_S, "CCTextureCache" ); tolua_usertype(tolua_S, "CCDevice" ); tolua_usertype(tolua_S, "CCFadeOutTRTiles" ); tolua_usertype(tolua_S, "CCMenuItemSprite" ); tolua_usertype(tolua_S, "CCEaseExponentialInOut" ); tolua_usertype(tolua_S, "CCFadeOutUpTiles" ); tolua_usertype(tolua_S, "CCWaves3D" ); tolua_usertype(tolua_S, "ccBlendFunc" ); tolua_usertype(tolua_S, "CCImage" ); tolua_usertype(tolua_S, "CCLens3D" ); tolua_usertype(tolua_S, "CCTintBy" ); tolua_usertype(tolua_S, "CCBool" ); tolua_usertype(tolua_S, "CCPoint" ); tolua_usertype(tolua_S, "CCParticleMeteor" ); tolua_usertype(tolua_S, "CCEaseElasticIn" ); tolua_usertype(tolua_S, "CCEaseSineIn" ); tolua_usertype(tolua_S, "CCCardinalSplineTo" ); tolua_usertype(tolua_S, "CCFloat" ); tolua_usertype(tolua_S, "CCWaves" ); tolua_usertype(tolua_S, "CCParticleFireworks" ); tolua_usertype(tolua_S, "CCEvent" ); tolua_usertype(tolua_S, "CCBaseData" ); tolua_usertype(tolua_S, "CCActionInterval" ); tolua_usertype(tolua_S, "CCRenderTexture" ); tolua_usertype(tolua_S, "CCObject" ); tolua_usertype(tolua_S, "CCEaseBackInOut" ); tolua_usertype(tolua_S, "CCAtlasNode" ); tolua_usertype(tolua_S, "CCEaseBackOut" ); tolua_usertype(tolua_S, "CCSize" ); tolua_usertype(tolua_S, "CCInteger" ); tolua_usertype(tolua_S, "CCParticleFlower" ); tolua_usertype(tolua_S, "CCLiquid" ); tolua_usertype(tolua_S, "CCEaseBounce" ); tolua_usertype(tolua_S, "CCSpeed" ); tolua_usertype(tolua_S, "CCFrameData" ); tolua_usertype(tolua_S, "CCTransitionMoveInL" ); tolua_usertype(tolua_S, "CCSpriteFrame" ); tolua_usertype(tolua_S, "CCJumpBy" ); tolua_usertype(tolua_S, "CCTransitionFadeTR" ); tolua_usertype(tolua_S, "CCControlUtils" ); tolua_usertype(tolua_S, "CCGridBase" ); tolua_usertype(tolua_S, "RGBA" ); tolua_usertype(tolua_S, "CCParticleDisplayData" ); tolua_usertype(tolua_S, "SimpleAudioEngine" ); tolua_usertype(tolua_S, "CCNotificationCenter" ); tolua_usertype(tolua_S, "CCPointShape" ); tolua_usertype(tolua_S, "CCSpriteBatchNode" ); tolua_usertype(tolua_S, "CCEaseSineInOut" ); tolua_usertype(tolua_S, "ccFontShadow" ); tolua_usertype(tolua_S, "CCTwirl" ); tolua_usertype(tolua_S, "CCCircleShape" ); tolua_usertype(tolua_S, "CCDrawNode" ); tolua_usertype(tolua_S, "CCControlColourPicker" ); tolua_usertype(tolua_S, "CCMenuItemLabel" ); tolua_usertype(tolua_S, "CCDouble" ); tolua_usertype(tolua_S, "CCTargetedAction" ); tolua_usertype(tolua_S, "CCGrid3DAction" ); tolua_usertype(tolua_S, "CCString" ); tolua_usertype(tolua_S, "CCRemoveSelf" ); tolua_usertype(tolua_S, "CCAnimationData" ); tolua_usertype(tolua_S, "CCTransitionMoveInR" ); tolua_usertype(tolua_S, "CCTransitionFade" ); tolua_usertype(tolua_S, "CCSkewBy" ); tolua_usertype(tolua_S, "CCFlipX" ); tolua_usertype(tolua_S, "CCActionManager" ); tolua_usertype(tolua_S, "CCTransitionSlideInT" ); tolua_usertype(tolua_S, "CCCatmullRomTo" ); tolua_usertype(tolua_S, "CCPolygonShape" ); tolua_usertype(tolua_S, "CCTransitionSceneOriented" ); tolua_usertype(tolua_S, "CCAnimationCache" ); tolua_usertype(tolua_S, "CCComponent" ); tolua_usertype(tolua_S, "CCTransitionSlideInR" ); tolua_usertype(tolua_S, "CCTransitionMoveInT" ); tolua_usertype(tolua_S, "CCLayerGradient" ); tolua_usertype(tolua_S, "CCShapeNode" ); tolua_usertype(tolua_S, "CCStopGrid" ); tolua_usertype(tolua_S, "CCTMXMapInfo" ); tolua_usertype(tolua_S, "CCConfiguration" ); tolua_usertype(tolua_S, "CCLayerColor" ); tolua_usertype(tolua_S, "CCMenuItemFont" ); tolua_usertype(tolua_S, "CCTransitionFadeUp" ); tolua_usertype(tolua_S, "CCTransitionProgressVertical" ); tolua_usertype(tolua_S, "CCAccelerometer" ); tolua_usertype(tolua_S, "CCProcessBase" ); tolua_usertype(tolua_S, "CCRect" ); tolua_usertype(tolua_S, "CCActionInstant" ); tolua_usertype(tolua_S, "CCTurnOffTiles" ); tolua_usertype(tolua_S, "CCParticleSnow" ); tolua_usertype(tolua_S, "CCMenuItemImage" ); tolua_usertype(tolua_S, "ccTexParams" ); tolua_usertype(tolua_S, "CCEaseSineOut" ); tolua_usertype(tolua_S, "CCCallFuncN" ); tolua_usertype(tolua_S, "CCTransitionPageTurn" ); tolua_usertype(tolua_S, "ccFontDefinition" ); tolua_usertype(tolua_S, "ccFontStroke" ); tolua_usertype(tolua_S, "CCTintTo" ); tolua_usertype(tolua_S, "CCTransitionCrossFade" ); tolua_usertype(tolua_S, "CCClippingRegionNode" ); tolua_usertype(tolua_S, "CCActionEase" ); tolua_usertype(tolua_S, "CCBone" ); tolua_usertype(tolua_S, "CCParallaxNode" ); tolua_usertype(tolua_S, "CCRotateTo" ); tolua_usertype(tolua_S, "CCArmature" ); tolua_usertype(tolua_S, "CCBatchNode" ); tolua_usertype(tolua_S, "CCMovementBoneData" ); tolua_usertype(tolua_S, "CCShakyTiles3D" ); tolua_usertype(tolua_S, "CCArmatureDisplayData" ); tolua_usertype(tolua_S, "CCNode" ); tolua_usertype(tolua_S, "CCArmatureData" ); tolua_usertype(tolua_S, "CCArmatureAnimation" ); tolua_usertype(tolua_S, "CCSpriteDisplayData" ); tolua_usertype(tolua_S, "CCBezierTo" ); tolua_usertype(tolua_S, "CCDeccelAmplitude" ); tolua_usertype(tolua_S, "CCTweenType" ); tolua_usertype(tolua_S, "CCBoneData" ); tolua_usertype(tolua_S, "CCTableView" ); tolua_usertype(tolua_S, "CCTableViewCell" ); tolua_usertype(tolua_S, "CCTransitionProgress" ); tolua_usertype(tolua_S, "CCEditBox" ); tolua_usertype(tolua_S, "HSV" ); tolua_usertype(tolua_S, "CCRotateBy" ); tolua_usertype(tolua_S, "CCControlStepper" ); tolua_usertype(tolua_S, "CCControlSlider" ); tolua_usertype(tolua_S, "CCMoveBy" ); tolua_usertype(tolua_S, "CCParticleGalaxy" ); tolua_usertype(tolua_S, "CCCamera" ); tolua_usertype(tolua_S, "CCSequence" ); tolua_usertype(tolua_S, "CCTileMapAtlas" ); tolua_usertype(tolua_S, "tCCParticle" ); tolua_usertype(tolua_S, "CCCatmullRomBy" ); tolua_usertype(tolua_S, "CCHide" ); tolua_usertype(tolua_S, "CCControlButton" ); tolua_usertype(tolua_S, "CCJumpTiles3D" ); tolua_usertype(tolua_S, "CCTransitionJumpZoom" ); tolua_usertype(tolua_S, "CCTMXLayer" ); tolua_usertype(tolua_S, "CCControl" ); tolua_usertype(tolua_S, "AssetsManager" ); tolua_usertype(tolua_S, "CCScheduler" ); tolua_usertype(tolua_S, "CCDirector" ); tolua_usertype(tolua_S, "CCMenuItemToggle" ); tolua_usertype(tolua_S, "CCEGLView" ); tolua_usertype(tolua_S, "ccBezierConfig" ); tolua_usertype(tolua_S, "CCFadeTo" ); tolua_usertype(tolua_S, "CCTouchDispatcher" ); tolua_usertype(tolua_S, "CCMenuItemAtlasFont" ); tolua_usertype(tolua_S, "SEL_MenuHandler" ); tolua_usertype(tolua_S, "CCEventDispatcher" ); tolua_usertype(tolua_S, "CCParticleSystem" ); tolua_usertype(tolua_S, "CCJumpTo" ); tolua_usertype(tolua_S, "CCMenu" ); tolua_usertype(tolua_S, "ccColor4F" ); tolua_usertype(tolua_S, "CCEaseExponentialOut" ); tolua_usertype(tolua_S, "CCSet" ); tolua_usertype(tolua_S, "CCCallFunc" ); tolua_usertype(tolua_S, "CCLabelAtlas" ); tolua_usertype(tolua_S, "CCLabelBMFont" ); tolua_usertype(tolua_S, "CCEaseBounceIn" ); tolua_usertype(tolua_S, "CCPlace" ); tolua_usertype(tolua_S, "CCSprite" ); tolua_usertype(tolua_S, "CCFileUtils" ); tolua_usertype(tolua_S, "CCLayer" ); tolua_usertype(tolua_S, "CCTransitionSplitCols" ); tolua_usertype(tolua_S, "CCPageTurn3D" ); tolua_usertype(tolua_S, "CCEaseIn" ); tolua_usertype(tolua_S, "CCTransitionProgressRadialCW" ); tolua_usertype(tolua_S, "CCEaseElastic" ); tolua_usertype(tolua_S, "CCTransitionProgressRadialCCW" ); tolua_usertype(tolua_S, "CCEaseOut" ); tolua_usertype(tolua_S, "CCBezierBy" ); tolua_usertype(tolua_S, "CCScrollView" ); tolua_usertype(tolua_S, "CCUserDefault" ); tolua_usertype(tolua_S, "CCProgressTimer" ); tolua_usertype(tolua_S, "CCDictionary" ); tolua_usertype(tolua_S, "CCParticleFire" ); tolua_usertype(tolua_S, "CCTransitionFlipY" ); tolua_usertype(tolua_S, "CCTMXLayerInfo" ); tolua_usertype(tolua_S, "CCTransitionFadeBL" ); tolua_usertype(tolua_S, "CCShuffleTiles" ); tolua_usertype(tolua_S, "CCTransitionSlideInL" ); tolua_usertype(tolua_S, "CCRipple3D" ); tolua_usertype(tolua_S, "CCRepeat" ); tolua_usertype(tolua_S, "CCClippingNode" ); tolua_usertype(tolua_S, "CCTransitionProgressInOut" ); tolua_usertype(tolua_S, "CCParticleSpiral" ); tolua_usertype(tolua_S, "CCTransitionZoomFlipY" ); tolua_usertype(tolua_S, "CCEaseBounceInOut" ); tolua_usertype(tolua_S, "CCTransitionZoomFlipX" ); tolua_usertype(tolua_S, "CCTransitionFlipX" ); tolua_usertype(tolua_S, "CCSpawn" ); tolua_usertype(tolua_S, "CCTransitionRotoZoom" ); tolua_usertype(tolua_S, "CCEaseInOut" ); tolua_usertype(tolua_S, "CCShatteredTiles3D" ); tolua_usertype(tolua_S, "CCAccelAmplitude" ); tolua_usertype(tolua_S, "CCParticleSmoke" ); tolua_usertype(tolua_S, "CCTMXObjectGroup" ); tolua_usertype(tolua_S, "CCFadeOut" ); tolua_usertype(tolua_S, "CCLayerMultiplex" ); tolua_usertype(tolua_S, "CCControlPotentiometer" ); tolua_usertype(tolua_S, "CCParticleExplosion" ); tolua_usertype(tolua_S, "CCGLProgram" ); tolua_usertype(tolua_S, "CCMenuItem" ); tolua_usertype(tolua_S, "ccColor4B" ); tolua_usertype(tolua_S, "CCFlipX3D" ); tolua_usertype(tolua_S, "CCSplitRows" ); tolua_usertype(tolua_S, "CCArray" ); tolua_usertype(tolua_S, "CCReverseTime" ); tolua_usertype(tolua_S, "CCSkewTo" ); tolua_usertype(tolua_S, "CCParticleBatchNode" ); tolua_usertype(tolua_S, "CCGraySprite" ); tolua_usertype(tolua_S, "CCAnimation" ); tolua_usertype(tolua_S, "CCRepeatForever" ); tolua_usertype(tolua_S, "CCTime" ); tolua_usertype(tolua_S, "CCAction" ); tolua_usertype(tolua_S, "CCTextFieldTTF" ); tolua_usertype(tolua_S, "CCTextureAtlas" ); tolua_usertype(tolua_S, "CCScaleBy" ); tolua_usertype(tolua_S, "CCEaseElasticInOut" ); tolua_usertype(tolua_S, "CCSplitCols" ); tolua_usertype(tolua_S, "CCEaseBounceOut" ); tolua_usertype(tolua_S, "CCAnimationFrame" ); tolua_usertype(tolua_S, "CCControlSwitch" ); } |
拿CCLabelTTF举例,你在里面搜便可以明白了。第一个参数先不用管,第二个是CCLabelTTF在C++中的方法名,第三个参数便是这个文件中定义的方法,你找到一看便会明白了。
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 |
#ifdef __cplusplus tolua_cclass(tolua_S, "CCLabelTTF" , "CCLabelTTF" , "CCSprite" ,tolua_collect_CCLabelTTF); #else tolua_cclass(tolua_S, "CCLabelTTF" , "CCLabelTTF" , "CCSprite" ,NULL); #endif tolua_beginmodule(tolua_S, "CCLabelTTF" ); tolua_function(tolua_S, "new" ,tolua_Cocos2d_CCLabelTTF_new00); tolua_function(tolua_S, "new_local" ,tolua_Cocos2d_CCLabelTTF_new00_local); tolua_function(tolua_S, ".call" ,tolua_Cocos2d_CCLabelTTF_new00_local); tolua_function(tolua_S, "delete" ,tolua_Cocos2d_CCLabelTTF_delete00); tolua_function(tolua_S, "create" ,tolua_Cocos2d_CCLabelTTF_create00); tolua_function(tolua_S, "create" ,tolua_Cocos2d_CCLabelTTF_create01); tolua_function(tolua_S, "create" ,tolua_Cocos2d_CCLabelTTF_create02); tolua_function(tolua_S, "create" ,tolua_Cocos2d_CCLabelTTF_create03); tolua_function(tolua_S, "initWithString" ,tolua_Cocos2d_CCLabelTTF_initWithString00); tolua_function(tolua_S, "initWithString" ,tolua_Cocos2d_CCLabelTTF_initWithString01); tolua_function(tolua_S, "initWithString" ,tolua_Cocos2d_CCLabelTTF_initWithString02); tolua_function(tolua_S, "initWithStringAndTextDefinition" ,tolua_Cocos2d_CCLabelTTF_initWithStringAndTextDefinition00); tolua_function(tolua_S, "init" ,tolua_Cocos2d_CCLabelTTF_init00); tolua_function(tolua_S, "setTextDefinition" ,tolua_Cocos2d_CCLabelTTF_setTextDefinition00); tolua_function(tolua_S, "getTextDefinition" ,tolua_Cocos2d_CCLabelTTF_getTextDefinition00); tolua_function(tolua_S, "enableShadow" ,tolua_Cocos2d_CCLabelTTF_enableShadow00); tolua_function(tolua_S, "disableShadow" ,tolua_Cocos2d_CCLabelTTF_disableShadow00); tolua_function(tolua_S, "enableStroke" ,tolua_Cocos2d_CCLabelTTF_enableStroke00); tolua_function(tolua_S, "disableStroke" ,tolua_Cocos2d_CCLabelTTF_disableStroke00); tolua_function(tolua_S, "setFontFillColor" ,tolua_Cocos2d_CCLabelTTF_setFontFillColor00); tolua_function(tolua_S, "setString" ,tolua_Cocos2d_CCLabelTTF_setString00); tolua_function(tolua_S, "getString" ,tolua_Cocos2d_CCLabelTTF_getString00); tolua_function(tolua_S, "getHorizontalAlignment" ,tolua_Cocos2d_CCLabelTTF_getHorizontalAlignment00); tolua_function(tolua_S, "setHorizontalAlignment" ,tolua_Cocos2d_CCLabelTTF_setHorizontalAlignment00); tolua_function(tolua_S, "getVerticalAlignment" ,tolua_Cocos2d_CCLabelTTF_getVerticalAlignment00); tolua_function(tolua_S, "setVerticalAlignment" ,tolua_Cocos2d_CCLabelTTF_setVerticalAlignment00); tolua_function(tolua_S, "getDimensions" ,tolua_Cocos2d_CCLabelTTF_getDimensions00); tolua_function(tolua_S, "setDimensions" ,tolua_Cocos2d_CCLabelTTF_setDimensions00); tolua_function(tolua_S, "getFontSize" ,tolua_Cocos2d_CCLabelTTF_getFontSize00); tolua_function(tolua_S, "setFontSize" ,tolua_Cocos2d_CCLabelTTF_setFontSize00); tolua_function(tolua_S, "getFontName" ,tolua_Cocos2d_CCLabelTTF_getFontName00); tolua_function(tolua_S, "setFontName" ,tolua_Cocos2d_CCLabelTTF_setFontName00); tolua_endmodule(tolua_S); |
假如我们有自己的C++方法需要在Lua中调用,也按照这两个大步骤完成即可。中间桥梁类参考LuaCocos2d.cpp即可。
原文:http://www.cnblogs.com/lan0725/p/3539762.html