/** * Appelé si le joueur fonce dans un truc * * @param animator Infos sur la colision */ bool Player::onCollision( const irr::scene::ISceneNodeAnimatorCollisionResponse &animator) { const irr::scene::ISceneNode* cible = animator.getCollisionNode(); irr::core::vector3df newPosition = animator.getCollisionResultPosition(); irr::core::line2d<irr::f32> ray; switch(cible->getID()) { case SCENE_NODE_MOBS: // MOBS ray.start.X = cible->getPosition().X; ray.start.Y = cible->getPosition().Z; ray.end.X = newPosition.X; ray.end.Y = newPosition.Z; newPosition.X += ray.getUnitVector().X * 0.2f; newPosition.Z += ray.getUnitVector().Y * 0.2f; break; default: // MAP break; } // Met a jour la position du joueur setPosition(newPosition); return true; }
bool Collider::onCollision(const irr::scene::ISceneNodeAnimatorCollisionResponse& a_Animator) { return m_Callback(a_Animator.getCollisionNode()); }