Beispiel #1
0
/**
 * 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;
}
Beispiel #2
0
 bool Collider::onCollision(const irr::scene::ISceneNodeAnimatorCollisionResponse& a_Animator)
 {
     return m_Callback(a_Animator.getCollisionNode());
 }