目前项目,使用了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即可。