::mayukoの小ネタ 変数ってなに><
投稿者 ::mayuko
さてwスクリプトの構造ってこんなになってるで最初にある変数の定義からちょーと説明をしてみます。
まず最初の変数って何?から解説です。
とりあえずグローバル(他にローカルってのもあります)は置いといて
変数ってなに?ってお話から
変数とは何かというと「なんかの値を保存するメモリ上の空間」のことです。
例えばね
なにかプログラムが書きたーい!
えーとわたしは
タッチしたときに「こんにちわ」とお話するオブジェクトが作りたい!
とか思いついたとします。
じゃその「こんにちわ」という言葉をLSLのメモリ上に覚えておいてもらって置こう!
ということです:)
ただしそこはコンピュータ、結構頭いいです。
こんな感じの値が入るかも知れないから、場所確保しといてー
としておくことも出来るし、途中で書き換えたいんだけど・・・
ってわがままも聞いてくれちゃったりします。
ただしちょーち条件がありまして、最初からどんなのが入るのか教えてあげてください。
それを変数の「基本のデータ型」とかただ単純に「型」いいます。
LSLで使えるのはこの7つ
integer
*int型、整数型とか言います 0とか1とか100とか1000とか整数が入れられます。
float
*float型、浮動小数点型とか言います。0.1とか0.01とか小数点が入れられます。
string
*str型、文字列型とか言います。「おはよう」とか「ホイットのスケベ」とか文字が入れれます。
もう一度言います。「ホイットのスケベ」とか文字が入れれますw
vector
*vector型とかベクトル型とか言います。 <1.0,1.0,1.0>とかが入ります。
SLは3Dなのでこんな変数の型が用意されてます。
rotation
*ローテーション型。クオータニオンとかいいます。SLは3Dなので
こんな変数の型が用意されてます。
なんかこむずかしい>< よくわかんない;;
key
*キー型とかキーとかいいます。
SLではオブジェクトもアバターもテクスチャーもいっこいっこに
UUIDという16バイトの識別番号がついています。
Universally Unique Identifierとか言うみたい・・・
list
*リスト型といいます。文字列でも整数でもなんでもいれられます。配列です。
LSLはここらへんをきちっと指定してあげなきゃならないデス
さてと、ここで話が戻ってグローバルていぎーの話!
スクリプトの構造ってこんなになってるから見てみると
[状態・イベント・条件とかとか]
{
なんかする
}
って{}に区切られた形が見えるかと思います。
これをブロックといいます。
変数というのは{}の中に書くとローカル変数と呼ばれます。
ローカル変数っていうのは、この{}の中でしかメモリ空間に保存されません。
では、文字列型のgodを定義して
それの中の値を”ホイットのスケベ“にしてみて
どういう風になるのか見てみましょうw
状態・イベント(引数)・条件(式)とか
{
string god = "ホイットのスケベ";
llOwnerSay(god);
}
は、ちゃんと書いたとおりにお話できるのですが
状態・イベント(引数)・条件(式)とか
{
string god = "ホイットのスケベ";
}
状態・イベント(引数)・条件(式)とか
{
llOwnerSay(god);
}
とか書いてもお話できません。
他の{}で定義して、定義した場所以外で書いても
スクリプトは理解できなくて実行できません。
しかし
状態・イベント(引数)・条件(式)とか
{
string god = "ホイットのスケベ";
{
llOwnerSay(god);
}
}
状態・イベント(引数)・条件(式)とか
{
string god = "ホイットのスケベ";
if(ホイットは紳士){
llOwnerSay("えー!");
}else{
llOwnerSay(god);
}
}
これは理解できます。
{}の外に書いてあるものは読めて
その{}の外に出ると見えなくなっちゃうのです。
これを変数の有効範囲(scope)とか言います。
一番外側に書いた変数はどの{}にも属さないで
どこの{}からも見えて読めます。
このことを、グローバル変数といいます。
グローバル変数の例ならこんな感じね
string god = "ホイットのスケベ";
状態・イベント(引数)・条件(式)とか
{
if(ホイットは紳士){
llOwnerSay("ありえなーい!");
}else{
llOwnerSay(god);
}
}
*ところどころで誰かさんの誹謗中傷があるような文章ですが、
これはスクリプトのさんぷるであって、そんなことちっとも思ってません。
ここが小ネタでした:)
関連する投稿




















