In this guide 테이블에 몬스터를 추가하고 테이블에서 몬스터의 건강을 감소시키는 함수가 생성되었습니다.LuaPlus는 C++에서 테이블을 조작합니다
monster = objectMgr:CreateObject("HotMamma",5);
monster:Hurt(1) --decrease health by 1
--or
objectMgr:CreateObject("HotMamma",5);
monster = objectMgr:GetObject(0)
monster:Hurt(1)
을하지만 내가 어떻게 C++ 측면에서이 함수를 호출 할 수 있습니다 :
당신은 쉽게 루아 스크립트에서이 같은 두 functons를 사용할 수 있습니까?
나는 원래 사람을 의미 : ObjectMgr::CreateObejct()
, ObjectMgr::GetObjectByIndex()
및 Monster::Hurt()
나는이 문제를 알아 내려고에 8 시간 이상을 지출! 그러나 아무것도 작동하지 않았습니다. :
class Monster
{
// ...
public:
Monster(std::string& name, int health);
void Hurt(int damage);
void Push(LuaPlus::LuaState* pState);
int Index(LuaPlus::LuaState* pState);
int NewIndex(LuaPlus::LuaState* pState);
int Equals(LuaPlus::LuaState* pState);
};
typedef std::shared_ptr<Monster> MonsterPtr;
MonsterPtr
입니다 : 파일 Monster.hpp
보고에서
class "std::tr1::shared_ptr" has no member "Hurt"
감사합니다. – Forivin
@Forivin C++에서 호출 할 때 문제가 발생할 경우를 대비하여'objectMgr.CreateObject'에 대한 정보를 추가했습니다. – greatwolf
글쎄, CreateObject가 일반 인수를 받아들이도록 수정했습니다. 그래서 괴물 -> 상처 (1); 실제로 그 일을했다. : p 나는 후에 Lua 쪽에서 그것을 더 이상 호출 할 수 없었다. 그래서 나는 확실히 이것을 체크 할 것이다! 고마워 고마워. :) – Forivin