mirror of https://github.com/axmolengine/axmol.git
Merge pull request #11407 from samuele3hu/v3_studio2
Synchronize the related ActionTimeline test cases of Lua refer to the cpp-tests
This commit is contained in:
commit
bc34554bd9
|
@ -64,6 +64,72 @@ tolua_lerror:
|
|||
return 0;
|
||||
}
|
||||
|
||||
int lua_cocos2dx_csloader_CSLoader_createNode(lua_State* tolua_S)
|
||||
{
|
||||
int argc = 0;
|
||||
bool ok = true;
|
||||
#if COCOS2D_DEBUG >= 1
|
||||
tolua_Error tolua_err;
|
||||
#endif
|
||||
|
||||
#if COCOS2D_DEBUG >= 1
|
||||
if (!tolua_isusertable(tolua_S,1,"cc.CSLoader",0,&tolua_err)) goto tolua_lerror;
|
||||
#endif
|
||||
|
||||
argc = lua_gettop(tolua_S)-1;
|
||||
|
||||
do
|
||||
{
|
||||
if (argc == 2)
|
||||
{
|
||||
std::string filename;
|
||||
ok &= luaval_to_std_string(tolua_S, 2,&filename, "cc.CSLoader:createNode");
|
||||
if (!ok) { break; }
|
||||
|
||||
#if COCOS2D_DEBUG >= 1
|
||||
if (!toluafix_isfunction(tolua_S,3,"LUA_FUNCTION",0,&tolua_err) )
|
||||
{
|
||||
goto tolua_lerror;
|
||||
}
|
||||
#endif
|
||||
|
||||
LUA_FUNCTION handler = ( toluafix_ref_function(tolua_S,3,0));
|
||||
auto callback = [handler, tolua_S](cocos2d::Ref* ref){
|
||||
if (nullptr == ref)
|
||||
return;
|
||||
toluafix_pushusertype_ccobject(tolua_S, ref->_ID, &(ref->_luaID), (void*)ref,"cc.Ref");
|
||||
LuaEngine::getInstance()->getLuaStack()->executeFunctionByHandler(handler, 1);
|
||||
};
|
||||
|
||||
cocos2d::Node* ret = cocos2d::CSLoader::createNode(filename, callback);
|
||||
ScriptHandlerMgr::getInstance()->addCustomHandler((void*)ret, handler);
|
||||
object_to_luaval<cocos2d::Node>(tolua_S, "cc.Node",(cocos2d::Node*)ret);
|
||||
return 1;
|
||||
}
|
||||
} while (0);
|
||||
ok = true;
|
||||
do
|
||||
{
|
||||
if (argc == 1)
|
||||
{
|
||||
std::string filename;
|
||||
ok &= luaval_to_std_string(tolua_S, 2,&filename, "cc.CSLoader:createNode");
|
||||
if (!ok) { break; }
|
||||
cocos2d::Node* ret = cocos2d::CSLoader::createNode(filename);
|
||||
object_to_luaval<cocos2d::Node>(tolua_S, "cc.Node",(cocos2d::Node*)ret);
|
||||
return 1;
|
||||
}
|
||||
} while (0);
|
||||
ok = true;
|
||||
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d", "cc.CSLoader:createNode",argc, 1);
|
||||
return 0;
|
||||
#if COCOS2D_DEBUG >= 1
|
||||
tolua_lerror:
|
||||
tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_csloader_CSLoader_createNode'.",&tolua_err);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
int register_all_cocos2dx_csloader_manual(lua_State* L)
|
||||
{
|
||||
lua_pushstring(L, "cc.CSLoader");
|
||||
|
@ -71,6 +137,7 @@ int register_all_cocos2dx_csloader_manual(lua_State* L)
|
|||
if (lua_istable(L,-1))
|
||||
{
|
||||
tolua_function(L, "createTimeline", lua_cocos2dx_csloader_CSLoader_createTimeline);
|
||||
tolua_function(L, "createNode", lua_cocos2dx_csloader_CSLoader_createNode);
|
||||
}
|
||||
lua_pop(L, 1);
|
||||
|
||||
|
|
|
@ -5,9 +5,13 @@ local TimelineTestIndex =
|
|||
{
|
||||
TEST_ACTION_TIMELINE = 1,
|
||||
TEST_CHANGE_PLAY_SECTION = 2,
|
||||
--TEST_TIMELINE_FRAME_EVENT = 3,
|
||||
TEST_TIMELINE_PERFORMACE = 3,
|
||||
TEST_ACTION_TIMELINE_EASE = 4,
|
||||
TEST_TIMELINE_FRAME_EVENT = 3,
|
||||
TEST_TIMELINE_PERFORMACE = 4,
|
||||
TEST_TIMELINE_ANIMATION_LIST = 5,
|
||||
TEST_TIMELINE_PROJECT_NODE = 6,
|
||||
TEST_PROJECT_NODE_FOR_SIMULATOR = 7,
|
||||
TEST_TIMELINE_NODE_LOADED_CALLBACK = 8,
|
||||
TEST_ACTION_TIMELINE_EASE = 9,
|
||||
}
|
||||
local timelineSceneIdx = TimelineTestIndex.TEST_ACTION_TIMELINE
|
||||
|
||||
|
@ -63,12 +67,20 @@ function TimelineTestLayer.title(idx)
|
|||
return "Test ActionTimeline"
|
||||
elseif TimelineTestIndex.TEST_CHANGE_PLAY_SECTION == idx then
|
||||
return "Test Change Play Section"
|
||||
--elseif TimelineTestIndex.TEST_TIMELINE_FRAME_EVENT == idx then
|
||||
-- return "Test Frame Event"
|
||||
elseif TimelineTestIndex.TEST_TIMELINE_FRAME_EVENT == idx then
|
||||
return "Test Frame Event"
|
||||
elseif TimelineTestIndex.TEST_TIMELINE_PERFORMACE == idx then
|
||||
return "Test ActionTimeline performance"
|
||||
elseif TimelineTestIndex.TEST_ACTION_TIMELINE_EASE == idx then
|
||||
return "Test ActionTimelineEase"
|
||||
elseif TimelineTestIndex.TEST_TIMELINE_ANIMATION_LIST == idx then
|
||||
return "Test ActionTimeline AnimationList"
|
||||
elseif TimelineTestIndex.TEST_TIMELINE_PROJECT_NODE == idx then
|
||||
return "Test ActionTimeline ProjectNode"
|
||||
elseif TimelineTestIndex.TEST_PROJECT_NODE_FOR_SIMULATOR == idx then
|
||||
return "Test ProjectNode for Simalator"
|
||||
elseif TimelineTestIndex.TEST_TIMELINE_NODE_LOADED_CALLBACK == idx then
|
||||
return "Test node loaded call back"
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -420,6 +432,237 @@ function TestTimelinePerformance.create()
|
|||
return layer
|
||||
end
|
||||
|
||||
-------------------------------------------
|
||||
---TestTimelineAnimationList
|
||||
-------------------------------------------
|
||||
local TestTimelineAnimationList = class("TestTimelineAnimationList",TimelineTestLayer)
|
||||
TestTimelineAnimationList.__index = TestTimelineAnimationList
|
||||
|
||||
function TestTimelineAnimationList.extend(target)
|
||||
local t = tolua.getpeer(target)
|
||||
if not t then
|
||||
t = {}
|
||||
tolua.setpeer(target, t)
|
||||
end
|
||||
setmetatable(t, TestTimelineAnimationList)
|
||||
return target
|
||||
end
|
||||
|
||||
function TestTimelineAnimationList:onEnter()
|
||||
local node = cc.CSLoader:createNode("ActionTimeline/DemoPlayer.csb")
|
||||
local action = cc.CSLoader:createTimeline("ActionTimeline/DemoPlayer.csb")
|
||||
local standInfo = ccs.AnimationInfo("stand", 0, 40)
|
||||
local walkInfo = ccs.AnimationInfo("walk", 41, 81)
|
||||
action:addAnimationInfo(standInfo)
|
||||
action:addAnimationInfo(walkInfo)
|
||||
node:runAction(action)
|
||||
action:play("walk", true)
|
||||
|
||||
node:setScale(0.2)
|
||||
node:setPosition(150,100)
|
||||
self:addChild(node)
|
||||
end
|
||||
|
||||
function TestTimelineAnimationList.restartCallback()
|
||||
ccs.ArmatureDataManager:destroyInstance()
|
||||
local newScene = TimelineTestScene.create()
|
||||
newScene:addChild(restartTimelineTest())
|
||||
cc.Director:getInstance():replaceScene(newScene)
|
||||
end
|
||||
|
||||
function TestTimelineAnimationList.create()
|
||||
local layer = TestTimelineAnimationList.extend(cc.Layer:create())
|
||||
|
||||
if nil ~= layer then
|
||||
layer:createMenu()
|
||||
layer:createToExtensionMenu()
|
||||
layer:creatTitleAndSubTitle(timelineSceneIdx)
|
||||
local function onNodeEvent(event)
|
||||
if "enter" == event then
|
||||
layer:onEnter()
|
||||
end
|
||||
end
|
||||
layer:registerScriptHandler(onNodeEvent)
|
||||
end
|
||||
|
||||
return layer
|
||||
end
|
||||
|
||||
|
||||
-------------------------------------------
|
||||
---TestTimelineProjectNode
|
||||
-------------------------------------------
|
||||
local TestTimelineProjectNode = class("TestTimelineProjectNode",TimelineTestLayer)
|
||||
TestTimelineProjectNode.__index = TestTimelineProjectNode
|
||||
|
||||
function TestTimelineProjectNode.extend(target)
|
||||
local t = tolua.getpeer(target)
|
||||
if not t then
|
||||
t = {}
|
||||
tolua.setpeer(target, t)
|
||||
end
|
||||
setmetatable(t, TestTimelineProjectNode)
|
||||
return target
|
||||
end
|
||||
|
||||
function TestTimelineProjectNode:onEnter()
|
||||
local node = cc.CSLoader:createNode("ActionTimeline/TestAnimation.csb")
|
||||
local action = cc.CSLoader:createTimeline("ActionTimeline/TestAnimation.csb")
|
||||
|
||||
node:runAction(action)
|
||||
action:gotoFrameAndPlay(0, true)
|
||||
|
||||
node:setPosition(-300, -300)
|
||||
self:addChild(node)
|
||||
end
|
||||
|
||||
function TestTimelineProjectNode.restartCallback()
|
||||
ccs.ArmatureDataManager:destroyInstance()
|
||||
local newScene = TimelineTestScene.create()
|
||||
newScene:addChild(restartTimelineTest())
|
||||
cc.Director:getInstance():replaceScene(newScene)
|
||||
end
|
||||
|
||||
function TestTimelineProjectNode.create()
|
||||
local layer = TestTimelineProjectNode.extend(cc.Layer:create())
|
||||
|
||||
if nil ~= layer then
|
||||
layer:createMenu()
|
||||
layer:createToExtensionMenu()
|
||||
layer:creatTitleAndSubTitle(timelineSceneIdx)
|
||||
local function onNodeEvent(event)
|
||||
if "enter" == event then
|
||||
layer:onEnter()
|
||||
end
|
||||
end
|
||||
layer:registerScriptHandler(onNodeEvent)
|
||||
end
|
||||
|
||||
return layer
|
||||
end
|
||||
|
||||
|
||||
-------------------------------------------
|
||||
---TestProjectNodeForSimulator
|
||||
-------------------------------------------
|
||||
local TestProjectNodeForSimulator = class("TestProjectNodeForSimulator",TimelineTestLayer)
|
||||
TestProjectNodeForSimulator.__index = TestProjectNodeForSimulator
|
||||
|
||||
function TestProjectNodeForSimulator.extend(target)
|
||||
local t = tolua.getpeer(target)
|
||||
if not t then
|
||||
t = {}
|
||||
tolua.setpeer(target, t)
|
||||
end
|
||||
setmetatable(t, TestProjectNodeForSimulator)
|
||||
return target
|
||||
end
|
||||
|
||||
function TestProjectNodeForSimulator:onEnter()
|
||||
local node = cc.CSLoader:getInstance():createNodeWithFlatBuffersForSimulator("ActionTimeline/TestAnimation.csd")
|
||||
local action = ccs.ActionTimelineCache:getInstance():createActionWithFlatBuffersForSimulator("ActionTimeline/TestAnimation.csd")
|
||||
|
||||
node:runAction(action)
|
||||
action:gotoFrameAndPlay(0, true)
|
||||
|
||||
node:setPosition(-300, -300)
|
||||
self:addChild(node)
|
||||
|
||||
--test for when ProjectNode file lost
|
||||
local lackProjectNodefileNode = cc.CSLoader:getInstance():createNodeWithFlatBuffersForSimulator("ActionTimeline/TestNullProjectNode.csd")
|
||||
local lackProjectNodefileAction = ccs.ActionTimelineCache:getInstance():createActionWithFlatBuffersForSimulator("ActionTimeline/TestNullProjectNode.csd")
|
||||
lackProjectNodefileNode:runAction(lackProjectNodefileAction)
|
||||
lackProjectNodefileAction:gotoFrameAndPlay(0)
|
||||
self:addChild(lackProjectNodefileNode)
|
||||
end
|
||||
|
||||
function TestProjectNodeForSimulator.restartCallback()
|
||||
ccs.ArmatureDataManager:destroyInstance()
|
||||
local newScene = TimelineTestScene.create()
|
||||
newScene:addChild(restartTimelineTest())
|
||||
cc.Director:getInstance():replaceScene(newScene)
|
||||
end
|
||||
|
||||
function TestProjectNodeForSimulator.create()
|
||||
local layer = TestProjectNodeForSimulator.extend(cc.Layer:create())
|
||||
|
||||
if nil ~= layer then
|
||||
layer:createMenu()
|
||||
layer:createToExtensionMenu()
|
||||
layer:creatTitleAndSubTitle(timelineSceneIdx)
|
||||
local function onNodeEvent(event)
|
||||
if "enter" == event then
|
||||
layer:onEnter()
|
||||
end
|
||||
end
|
||||
layer:registerScriptHandler(onNodeEvent)
|
||||
end
|
||||
|
||||
return layer
|
||||
end
|
||||
|
||||
-------------------------------------------
|
||||
---TestTimelineNodeLoadedCallback
|
||||
-------------------------------------------
|
||||
local TestTimelineNodeLoadedCallback = class("TestTimelineNodeLoadedCallback",TimelineTestLayer)
|
||||
TestTimelineNodeLoadedCallback.__index = TestTimelineNodeLoadedCallback
|
||||
|
||||
function TestTimelineNodeLoadedCallback.extend(target)
|
||||
local t = tolua.getpeer(target)
|
||||
if not t then
|
||||
t = {}
|
||||
tolua.setpeer(target, t)
|
||||
end
|
||||
setmetatable(t, TestTimelineNodeLoadedCallback)
|
||||
return target
|
||||
end
|
||||
|
||||
function TestTimelineNodeLoadedCallback:onEnter()
|
||||
local node = cc.CSLoader:createNode("ActionTimeline/DemoPlayer.csb", function(object)
|
||||
if nil ~= object then
|
||||
print("object type is ", tolua.type(object))
|
||||
print("node name = ",object:getName())
|
||||
print("node parent name = ", object:getParent():getName())
|
||||
end
|
||||
end)
|
||||
local action = cc.CSLoader:createTimeline("ActionTimeline/DemoPlayer.csb")
|
||||
node:runAction(action)
|
||||
action:gotoFrameAndPlay(0)
|
||||
|
||||
node:setScale(0.2)
|
||||
node:setPosition(VisibleRect:center())
|
||||
|
||||
self:addChild(node)
|
||||
end
|
||||
|
||||
function TestTimelineNodeLoadedCallback.restartCallback()
|
||||
ccs.ArmatureDataManager:destroyInstance()
|
||||
local newScene = TimelineTestScene.create()
|
||||
newScene:addChild(restartTimelineTest())
|
||||
cc.Director:getInstance():replaceScene(newScene)
|
||||
end
|
||||
|
||||
function TestTimelineNodeLoadedCallback.create()
|
||||
local layer = TestTimelineNodeLoadedCallback.extend(cc.Layer:create())
|
||||
|
||||
if nil ~= layer then
|
||||
layer:createMenu()
|
||||
layer:createToExtensionMenu()
|
||||
layer:creatTitleAndSubTitle(timelineSceneIdx)
|
||||
local function onNodeEvent(event)
|
||||
if "enter" == event then
|
||||
layer:onEnter()
|
||||
end
|
||||
end
|
||||
layer:registerScriptHandler(onNodeEvent)
|
||||
end
|
||||
|
||||
return layer
|
||||
end
|
||||
|
||||
-------------------------------------------
|
||||
---TestActionTimelineEase
|
||||
-------------------------------------------
|
||||
local TestActionTimelineEase = class("TestActionTimelineEase",TimelineTestLayer)
|
||||
TestActionTimelineEase.__index = TestActionTimelineEase
|
||||
|
||||
|
@ -470,8 +713,12 @@ local actionlineSceneArr =
|
|||
{
|
||||
TestActionTimeline.create,
|
||||
TestChangePlaySection.create,
|
||||
--TestTimelineFrameEvent.create,
|
||||
TestTimelineFrameEvent.create,
|
||||
TestTimelinePerformance.create,
|
||||
TestTimelineAnimationList.create,
|
||||
TestTimelineProjectNode.create,
|
||||
TestProjectNodeForSimulator.create,
|
||||
TestTimelineNodeLoadedCallback.create,
|
||||
TestActionTimelineEase.create,
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ classes = CSLoader
|
|||
# will apply to all class names. This is a convenience wildcard to be able to skip similar named
|
||||
# functions from all classes.
|
||||
|
||||
skip = CSLoader::[nodeFromXML nodeFromProtocolBuffers createTimeline nodeWithFlatBuffers createActionTimelineNode]
|
||||
skip = CSLoader::[nodeFromXML nodeFromProtocolBuffers createTimeline nodeWithFlatBuffers createActionTimelineNode ^createNode$]
|
||||
|
||||
rename_functions =
|
||||
|
||||
|
|
Loading…
Reference in New Issue