2007年06月28日
第6回 超初心者用スクリプト講座 ステートエントリー?
こんばんは。ペンです。
昨晩は友人のTさんとQooというSIMにある海賊カフェに行ってきました。
ここは前に観光ブログ担当のジャスミンさんと偶然発見した場所。
いいとこだったので、Tさんを連れて行った次第ですw
(ちなみにこのSIMは居住地区で、観光SIMではありません。)
海賊カフェも仕掛けがいっぱいあって楽しいのですが
それ以上に私たちの心を掴んで離さなかったのがここ!!

下水道w
もうリアルすぎですwたまりませんw
二人して、
「すごい落ち着くわ~」
って感心しきってましたw
######################################
それではスクリプト講座に移っていきましょう~
今回は前回の復習もかねてスクリプトを
新規で生成したときにできるNew Scriptを使って講座をすすめたい
と思います。
まず、今回のメインは何かと言うと
お題のとおりstate_entryについてです。
これですね。
この講座を読んでいる人なら、毎回目にしてきたこの単語。
おまじないとか言って全く説明してきませんでしたw
面倒だったわけじゃないですよw
簡単のためですw
しかしながら、前回にtouch_startっていうのがでてきました。
内容は、オブジェクトがタッチされたかどうかを判断して
touch_start内のスクリプトを実行するというものでした。
では、このstate_entryっていつ実行されるのでしょうか?
はい、答えは簡単。スクリプトが生成、またはリセットされたときです。
じゃあここで、おなじみのスクリプトに登場してもらいましょう。
今、state_entryには
llSay(0, "Hello, Avator!")
っていうコマンドが含まれています。このコマンドは
チャンネル0番でオブジェクトが
Hello, Avator!
って叫ぶというものです。
チャンネル0番は通常のチャットを表しています。普段会話で
使っているのはチャンネルの0番ということになりますね。
今は0のままでいいです。
また、叫ぶ内容はHello, Avataor!の部分を何かに変えればいいです。
いつstate_entryが実行されるかという話にもどりますが、
この場合だと、上記のとおりスクリプトが生成、またはリセットされたときにだけHello, Avator!って叫ぶよってことになります。
補足ですが Touched. はオブジェクトが触れられたときに
チャットをとおして叫びます。
(タッチイベントに関しては第5回講座を参照のこと)
ここで大事なのはstate_entry内が実行されるのはあくまでも
スクリプトが生成、またはリセットされたときだけということ
です。(ちなみにセーブした場合は自動的にリセットされます)
さて、ここで問題です。
オブジェクトを作って新しいボタンを押し、
上記のスクリプトを組み込みました。
次に、作ったオブジェクトをtakeし、さらにtakeしたオブジェクトを
もういちど出します。
この出したときにstate_entry内のコマンドは実行されるでしょうか?
答えはされません。この場合だと、Hello,Avator!!とは
言わないということです。
これはtakeしてもスクリプトはリセットされないためです。
では、どうすればオブジェクトを在庫目録から出すたびに
実行されるようなスクリプトを作ることができるのでしょう?
というのが次回のテーマですw
それでは御機嫌よう
昨晩は友人のTさんとQooというSIMにある海賊カフェに行ってきました。
ここは前に観光ブログ担当のジャスミンさんと偶然発見した場所。
いいとこだったので、Tさんを連れて行った次第ですw
(ちなみにこのSIMは居住地区で、観光SIMではありません。)
海賊カフェも仕掛けがいっぱいあって楽しいのですが
それ以上に私たちの心を掴んで離さなかったのがここ!!

下水道w
もうリアルすぎですwたまりませんw
二人して、
「すごい落ち着くわ~」
って感心しきってましたw
######################################
それではスクリプト講座に移っていきましょう~
今回は前回の復習もかねてスクリプトを
新規で生成したときにできるNew Scriptを使って講座をすすめたい
と思います。
まず、今回のメインは何かと言うと
お題のとおりstate_entryについてです。
state_entry(){
}
これですね。
この講座を読んでいる人なら、毎回目にしてきたこの単語。
おまじないとか言って全く説明してきませんでしたw
面倒だったわけじゃないですよw
簡単のためですw
しかしながら、前回にtouch_startっていうのがでてきました。
内容は、オブジェクトがタッチされたかどうかを判断して
touch_start内のスクリプトを実行するというものでした。
では、このstate_entryっていつ実行されるのでしょうか?
はい、答えは簡単。スクリプトが生成、またはリセットされたときです。
じゃあここで、おなじみのスクリプトに登場してもらいましょう。
default{
state_entry(){
llSay(0, "Hello, Avatar!");
}
touch_start(integer total_number){
llSay(0, "Touched.");
}
}
今、state_entryには
llSay(0, "Hello, Avator!")
っていうコマンドが含まれています。このコマンドは
チャンネル0番でオブジェクトが
Hello, Avator!
って叫ぶというものです。
チャンネル0番は通常のチャットを表しています。普段会話で
使っているのはチャンネルの0番ということになりますね。
今は0のままでいいです。
また、叫ぶ内容はHello, Avataor!の部分を何かに変えればいいです。
いつstate_entryが実行されるかという話にもどりますが、
この場合だと、上記のとおりスクリプトが生成、またはリセットされたときにだけHello, Avator!って叫ぶよってことになります。
補足ですが Touched. はオブジェクトが触れられたときに
チャットをとおして叫びます。
(タッチイベントに関しては第5回講座を参照のこと)
ここで大事なのはstate_entry内が実行されるのはあくまでも
スクリプトが生成、またはリセットされたときだけということ
です。(ちなみにセーブした場合は自動的にリセットされます)
さて、ここで問題です。
オブジェクトを作って新しいボタンを押し、
上記のスクリプトを組み込みました。
次に、作ったオブジェクトをtakeし、さらにtakeしたオブジェクトを
もういちど出します。
この出したときにstate_entry内のコマンドは実行されるでしょうか?
答えはされません。この場合だと、Hello,Avator!!とは
言わないということです。
これはtakeしてもスクリプトはリセットされないためです。
では、どうすればオブジェクトを在庫目録から出すたびに
実行されるようなスクリプトを作ることができるのでしょう?
というのが次回のテーマですw
それでは御機嫌よう
第10回 スクリプト講座 ポーズボールを作ろう(2)
第10回 スクリプト講座 ポーズボールを作ろう(1)
初心者用 スクリプト講座 再開します
第9回 超初心者用スクリプト講座 タイマーを使おう
第8回 超初心者用スクリプト講座 stateを使おう
第7回 超初心者用スクリプト講座 出したら実行する
第10回 スクリプト講座 ポーズボールを作ろう(1)
初心者用 スクリプト講座 再開します
第9回 超初心者用スクリプト講座 タイマーを使おう
第8回 超初心者用スクリプト講座 stateを使おう
第7回 超初心者用スクリプト講座 出したら実行する
Posted by ぺん at 20:47│Comments(0)
│超初心者用 スクリプト講座