Translations of this page:

Mostrando iconos de ayuda sobre los puntos calientes

Si quieres implementar una funcionalidad similar al resaltado de objetos activos, como en Tunguska, añade el siguiente código a game.script:

var ShowingHintIcons = false; 
//////////////////////////////////////////////////////////////////////////////// 
function ShowHintIcons() 
{ 
    // Pequeño arreglo de metamorphium. Eres libre de ignorarlo. 
    if (Scene.GetLayer("hints") == null) ShowingHintIcons = false; 
    // Fin del arreglo 
 
    // Nos aseguramos de mostrar los iconos sólo una vez 
    if(!ShowingHintIcons) 
    { 
        ShowingHintIcons = true; 
 
        // creamos una nueva capa superior 
        var HintLayer = Scene.AddLayer("hints"); 
 
        // recorremos todas las entidades de la escena 
        var MainLayer = Scene.MainLayer; 
        var i; 
        for(i = 0; i < MainLayer.NumNodes; i = i + 1) 
        { 
            var Node = MainLayer.GetNode(i); 
            AddHintIcon(HintLayer, Node); 
        } 
 
        // recorremos todas las entidades y actores libres 
        for(i = 0; i < Scene.NumFreeNodes; i = i + 1) 
        { 
            Node = Scene.GetFreeNode(i); 
            AddHintIcon(HintLayer, Node); 
        } 
 
        // rotamos los iconos para un momento 
        for(var t = 0; t <= 360; t = t + 15) 
        { 
            for(i = 0; i < HintLayer.NumNodes; i = i + 1) 
            { 
                var Icon = HintLayer.GetNode(i); 
                Icon.Rotate = t; 
            }         
            Sleep(50); 
        } 
 
        // eliminamos la capa 
        Scene.DeleteLayer(HintLayer); 
 
        ShowingHintIcons = false; 
    } 
} 
 
//////////////////////////////////////////////////////////////////////////////// 
function AddHintIcon(Layer, Node) 
{ 
    // sólo estamos interesados en las entidades visibles interactivas 
    if(Node.Type!="entity" || !Node.Interactive || !Node.Active==true) return; 
 
    // creamos el icono de ayuda 
    // puedes mejorar esto, por ejemplo, para mostrar diferentes iconos dependiendo de las capacidades del 'Nodo' 
    var Icon = Layer.AddEntity("icon"); 
    Icon.SetSprite("sprites\system\cur_wait.sprite");  // Reemplaza esto con un sprite que marque el punto caliente 
    Icon.X = Node.X; 
    Icon.Y = Node.Y - (Node.Height / 2); 
    Icon.Active = true; 
    Icon.Interactive = false; 
    Icon.Scalable = false; 
    Icon.Rotatable = true;     
}

Ahora sólo necesitas llamar a este código desde alguna parte. Por ejemplo, si quieres mostrar los iconos de ayuda cuando el jugador pulsa espacio, edita game.script, busca la función de evento on “Keypress”, y añade algo como:

if(Keyboard.KeyCode==VK_SPACE) ShowHintIcons();

Este script está basado en el código original escrito por Mac.

 
es/resource/displaying_hint_icons_over_active_hotspots.txt · Last modified: 2010/03/19 22:44 by saboteur
Recent changes RSS feed Creative Commons License Driven by DokuWiki