テクスチャ占い(llScaleTexture,llFrand,llOffsetTexture関数)
占いをつくったのでご紹介します。
オブジェクトTouchすると占い結果が表示されます。3秒後に元の表示に戻ります。
4枚のテクスチャを用意してもいいのですが、テクスチャをアップロードするには10L$かかるので、
このような一枚のテクスチャをアップロードし、表示位置をずらして使用することで節約してます。
下記のスクリプトを使います。
default
{ state_entry() { llScaleTexture(0.5,0.5 ,ALL_SIDES); llOffsetTexture(-0.250,0.250,ALL_SIDES); } touch_start(integer total_number) { float offsetX; float offsetY; float getval = llFrand(3.0); if ( getval < 1.0){ offsetX=0.250; offsetY=0.250; }else if ( getval < 2.0){ offsetX=-0.250; offsetY=-0.250; }else{ offsetX=0.250; offsetY=-0.250; } llOffsetTexture(offsetX,offsetY,ALL_SIDES); llSleep(3.0); llResetScript(); } } |
llScaleTexture関数:llScaleTexture(float horizontal, float vertical, integer side)
一番目のパラメータ : 縦(X)サイズ 二番目のパラメータ : 横(Y)サイズ 三番目のパラメータ : 面番号 指定された面のテクスチャの縦(X)サイズと横(Y)サイズを設定する 今回のサンプル場合、縦と横にそれぞれ2枚のテクスチャが表示されますので、サイズは1/2=0.5になります。 |
llFrand関数:llFrand(float max)
一番目のパラメータ : 最大値(<注意>取得値は、最大値未満になります!) 0.0 以上 max 未満のランダム浮動小数値を取得します。 |
llOffsetTexture関数:llOffsetTexture(float horizontal, float vertical, integer side)
一番目のパラメータ : 縦ズレ(X) 二番目のパラメータ : 横ズレ(Y) 三番目のパラメータ : 面番号 指定された面のテクスチャのズレ縦(X)と横ズレ(Y)を設定する テクスチャの中心はX=0,Y=0です。 今回のサンプル場合、縦と横にそれぞれ2枚のテクスチャが表示され、それぞれの中心値はその1/2なので、 (1/2)÷2=0.25をX軸Y軸でズラすことによってそれぞれの中心に表示させています。 |
llResetScript関数:llResetScript()
リセットします。 |