bool LuaEngineUtils::callLuaFunc(const char *luaFileName, const char *funcName, const char* format, ... ) { va_list args; va_start(args, format); bool b = callLuaFunc(luaFileName, funcName, format, args); va_end(args); return b; }
JNIEXPORT void JNICALL Java_com_game_suitang_JniCall_jniOpt (JNIEnv *env, jclass clazz, jint type, jstring info){ CCLog("test t6he function!~ %s",jstr2Char(env, info)); int choose = type; switch(choose){ case 0://这里是jAVA 调用C++的方法, 0是发送聊天信息,接受系统输入框传递 的字符串 CCLog("在这里进行调 用111111111111111111111111"); callLuaFunc("assets/GameScript/Scene/chat/chatlayer.lua","sendChatMsg", jstr2Char(env, info)); CCLog("在调用完毕`222222222222222222"); break; } }
bool LuaEngineUtils::callLuaFuncReturnBool(const char *luaFileName, const char *funcName, const char *format, ...) { va_list args; va_start(args, format); bool b = callLuaFunc(luaFileName, funcName, format, args); va_end(args); if(b){ lua_State *ls = getLuaState(); if(lua_isboolean(ls, -1)){ return lua_toboolean(ls, -1); } } return false; }
const char * LuaEngineUtils::callLuaFuncReturnChar(const char *luaFileName, const char *funcName, const char *format, ...) { va_list args; va_start(args, format); bool b = callLuaFunc(luaFileName, funcName, format, args); va_end(args); if(b){ lua_State *ls = getLuaState(); if(lua_isstring(ls, -1)){ return lua_tostring(ls, -1); } } return NULL; }
int LuaEngineUtils::callLuaFuncReturnInt(const char *luaFileName, const char *funcName, const char *format, ...) { va_list args; va_start(args, format); bool b = callLuaFunc(luaFileName, funcName, format, args); va_end(args); if(b){ lua_State *ls = getLuaState(); if(lua_isnumber(ls, -1)){ return lua_tonumber(ls, -1); } } return 0; }
void LuaEngine::draw() { ofEnableAlphaBlending(); callLuaFunc(L, "_draw"); ofSetColor(255, 255, 255, 255); ofDisableAlphaBlending(); }
void LuaEngine::update() { callLuaFunc(L, "_update"); core::update(); }