quarta-feira, 9 de dezembro de 2009

LSL - Aula 1 - Hello World e estados

Crie uma caixa, vá na aba conteúdo e clique no botão "Novo script". O Hello World é criado automaticamente como exemplo. Dê um duplo clique em "New Script" para ver o código gerado.

default
{

state_entry()
{
    llSay(0, "Hello, Avatar!");
}

touch_start(integer total_number)
{
    llSay(0, "Touched.");
}

}


O que está em state_entry() é executado uma vez sempre que a pessoa encontra o script no mundo(não precisa tocá-lo).

O que está em touch_start() é executado sempre que alguém toca o objeto.

A LSL trabalha com o conceito de estados. default é o estado padrão do objeto, mas pode-se criar seus próprios estados para tornar o código mais dividido e organizado.
Por exemplo, uma porta pode ter os estados "aberta", "fechada", "semi-aberta", "derrubada" e por aí vai. O estado é como o objeto se encontra atualmente. Você pode definir eventos state_entry() e touch_start(), entre outros, pra cada estado do seu objeto.

Exemplo de uma caixa que fica nos estados azul e vermelha:

default
{

state_entry()
{
    state azul;
}

}


state azul
{

state_entry()
{
    llSetColor(<0,0,1.0>, ALL_SIDES);
    llSetText("Estou azul - clique pra ficar vermelha", <0,0,1.0>, 1.0);
}

touch_start(integer total)
{
    state vermelha;
}

}


state vermelha
{

state_entry()
{
    llSetColor(<1.0,0,0>, ALL_SIDES);
    llSetText("Estou vermelha - clique pra ficar azul", <1.0,0,0>, 1.0);
}

touch_start(integer total)
{
    state azul;
}

}