Code: Select all
class creature
{
ISceneNode* creature_node; //the node
vector3df c_pos; //position of the node
public:
static int c_total; //num de creatures
int state, speed, gravity, BI; //not all are in use yet
const static int slot = 1;
// class constructor
creature(ISceneNode* creature_node,ISceneManager* smgr,vector3df c_pos,int gravity = 0, int speed = 10,int slot =1,s32 id = -1);
// class destructor
~creature();
void setTarget (vector3df new_target);
static int getSlot (); //returns slot creature number
bool Update();
};
// class constructor
creature::creature(ISceneNode* creature_node,ISceneManager* smgr,vector3df c_pos,int gravity, int speed,int slot,s32 id)
{
IAnimatedMesh* mesh = smgr->getMesh("media/robo2.obj");
creature_node = smgr->addAnimatedMeshSceneNode( mesh );
if (creature_node)
{
creature_node->setMaterialFlag(EMF_LIGHTING, true);
creature_node->setMaterialTexture( 0, driver->getTexture("media/robo2UV.jpg") );
creature_node->setScale(vector3df(50,50,50));
creature_node->setMaterialType(EMT_SOLID);
creature_node->setPosition(c_pos);
scene::ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator(selector, creature_node,
vector3df(100,100,100),
core::vector3df(0,gravity,0),
core::vector3df(0,0,0));
creature_node->addAnimator(anim);
anim->drop();
}
};
//class destructor
creature::~creature()
{
};
void creature::setTarget (vector3df new_target) //move the node to a new position
{
creature_node->setPosition(new_target); //this crashes everything
};
int creature::getSlot () //returns ID for this creature/node
{
return slot;
};
bool creature::Update()
{
stringw str = L"Updating creature in slot ";
str +=slot;
device->setWindowCaption(str.c_str());
return 0;
};
I've searched for examples but can't seem to find anything... am I thinking the whole thing wrong?