ccs.Bone本身getPosition()得到的数值总是0,0
看了论坛上其他人的提问后得知c++版本可以用
bone->getWorldInfo().x 和
bone->getWorldInfo().y
获取。
但是lua版本直接ccs.Bone:getWorldInfo()得到是数据里面没有导出x,y等属性
可以说使用一下方法自己在C++里导出:
在C++的AppDelegate.cpp里的最上边定义一下方法(还需要#include “LuaBasicConversions.h”)
int getCCSBonePos(lua_State *
l){ cocostudio::Bone *
bone=(cocostudio::Bone *)tolua_tousertype(
l,1,0); cocostudio::BaseData *
da=
bone->getWorldInfo(); vec2_to_luaval(
l,cocos2d::Vec2(
da->x,
da->y)); return 1;}
然后在applicationDidFinishLaunching
方法里加上
auto
ls = LuaEngine::getInstance()->getLuaStack()->getLuaState(); lua_register(
ls,“getCCSBonePos”,getCCSBonePos);
编译C++部分
在lua里使用:
local pos=getCCSBonePos(bone)
print(pos.x,pos.y)
其中bone为ccs.Bone