みんなで作ろう。教えて!セカンドライフ!
SLmame-セカンドライフブログポータルサイトソラマメ-HOMEへ
みんなで作ろう。教えて!セカンドライフ!
トップ
フォトラバ
マップトラックバック
カレンダートラックバック
ヘルプ
新規登録
}?>
ログイン
パスワードを忘れた方はこちら
TOP
みんなで作ろう。教えて!セカンドライフ!
2008年07月02日
飛行艇をつくったのですが
海にフロートで浮かんで飛行機として飛べるものは作れるのでしょうか?
飛行機と船のスクリプトはなんとなくわかるのですが
どう組み合わせてもうまくいきません^^;
他の考え方などあれば是非教えてください
Posted by Shun Sewell at 23:42 │
Comments(5)
│
TrackBack(0)
│
スクリプト関連
« 前の記事へ
│
このBlogのトップへ
│
次の記事へ »
この記事へのトラックバックURL
http://oshiete.slmame.com/t292596
この記事へのコメント
思い付きで、かつ今試せない環境のため、これでうまくいくかどうかわかりませんが、、、
もしかすると切り替えが重い等の理由で全く使いものにならないかもしれませんのでご了承ください。
1.飛行用スクリプトを関数化→flight()、船用スクリプトも関数化→sail()
2.timer()イベントハンドラで、以下を実施する。
- 定期的に自分の座標を確認しllWater()で得られる海抜と比較し着水しているかどうかを判定。
- 判定結果、着水しているならばsail()をコール。
3.touchイベントハンドラ(他の手段でも良い)で、以下の処理を実施する。
- 数メートル上空に強制物理移動する。
- flight()をコール。
着水判定がcollisionまたはland_collisionイベントハンドラでできれば良いのですが、できるかどうかちょっとわかりません。
できるならば、2.の部分はtimer()でなくこちらを使ったほうが良いと思います。
Posted by asa Soyer at 2008年07月03日 13:22
mew3さん、こんにちは。
asa Soyerさんが、厳密な時間のもとでの「長押し」を回答していますので、もっとアバウトで簡単な方法を書きます。
適当な変数を定義してカウンターとして使いtouchイベントの回数をチェックします。
具体的には、
// グローバル変数定義
integer counter;
// 諸々の処理は省略
// 初期値を正の整数としデクリメントして0と比較してもいいのですが、分かりやすくするためにカウントアップ方式)
touch_start(integer num_detected)
{
counter = 0;
}
touch(integer num_detected)
{
counter ++;
if(counter == 60) // 試してみたら、60カウントするのに4~5秒長押しでした
{
llDialog(パラメーター省略);
}
}
これで「長押し」は可能ですが、このままでは問題が出るでしょう。
というのは、押している人を考慮していないということです。
誰かが押している最中に、別の人が押したらcounterはリセットされますし(初期値設定を別の場所でやればよいわけですが)、同じ人が押し続けているのかチェックしていないからです。
その辺は、イベントのパラメーターのnum_detectedと、llDetectedKey関数と、そのキーの保持の仕方を考えれば出来ますよ。
Posted by
ささぴ
at 2008年07月03日 14:10
あぁ・・・、コメントするところを間違ってしまいました。
申し訳ございません。
Posted by
ささぴ
at 2008年07月03日 14:11
間違いついでにコメントすると、どこかに「浮き輪」のスクリプトがあるはずです。水面で浮いて、浮上することもできるはずです。頑張って検索してみてください。
Posted by
ささぴ
at 2008年07月03日 14:17
参考になりました。
頑張って作りたいと思いますー
ありがとうございました^^
Posted by Shun Sewell at 2008年07月03日 18:38
名前:
メール:
URL:
情報を記憶:
コメント:
確認せずに書込
このページの上へ▲
新規投稿
新規投稿するにはログインする必要があります。会員IDをお持ちでない方はIDを収得された後に投稿できるようになります。
カテゴリ
オブジェクト関連
(53)
スクリプト関連
(85)
アバター関連
(48)
SIM&土地関連
(27)
システム関連
(47)
ショップ関連
(7)
ビジネス関連
(3)
その他の質問
(59)
最近の記事
サポートチケットについて
(1/7)
テレポートできず困っています。
(1/7)
デフォアバに戻りたい
(1/6)
履歴・連絡先等の表示の仕方について
(12/27)
ライトのON/OFFスプリクトを教えてください><
(12/23)
画面外に出てしまったHUDの復帰方法
(12/23)
POPの撮影を
(12/22)
再度教えてくださいm(_ _)m
(12/21)
特定の位置・角度にオブジェクトをRezさせるには
(12/19)
フレンドの表示
(12/18)
過去記事
2009年01月
2008年12月
2008年11月
2008年10月
2008年09月
2008年08月
2008年07月
2008年06月
2008年05月
2008年04月
2008年03月
2008年02月
2008年01月
2007年12月
2007年11月
2007年10月
2007年09月
2007年08月
2007年07月
2007年06月
2007年05月
2007年04月
最近のコメント
まるべ / サポートチケットについて
こてっちん / デフォアバに戻りたい
千尋 / デフォアバに戻りたい
こてっちん / デフォアバに戻りたい
リサ / サポートチケットについて
最近のトラバ
チョコバーならぬチョコチン・・・
(8/30)
1.19.1に困った
(3/9)
看板で地上げ
(2/22)
看板で地上げ
(2/22)
なんで、ゲームセンター
(2/22)
<
2009年
01
月
>
S
M
T
W
T
F
S
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
ブログ内検索
RSS1.0
RSS2.0
[PR]Information
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。 解除は→
こちら
現在の読者数 2人
オーナーへメッセージ
QRコード
もしかすると切り替えが重い等の理由で全く使いものにならないかもしれませんのでご了承ください。
1.飛行用スクリプトを関数化→flight()、船用スクリプトも関数化→sail()
2.timer()イベントハンドラで、以下を実施する。
- 定期的に自分の座標を確認しllWater()で得られる海抜と比較し着水しているかどうかを判定。
- 判定結果、着水しているならばsail()をコール。
3.touchイベントハンドラ(他の手段でも良い)で、以下の処理を実施する。
- 数メートル上空に強制物理移動する。
- flight()をコール。
着水判定がcollisionまたはland_collisionイベントハンドラでできれば良いのですが、できるかどうかちょっとわかりません。
できるならば、2.の部分はtimer()でなくこちらを使ったほうが良いと思います。
asa Soyerさんが、厳密な時間のもとでの「長押し」を回答していますので、もっとアバウトで簡単な方法を書きます。
適当な変数を定義してカウンターとして使いtouchイベントの回数をチェックします。
具体的には、
// グローバル変数定義
integer counter;
// 諸々の処理は省略
// 初期値を正の整数としデクリメントして0と比較してもいいのですが、分かりやすくするためにカウントアップ方式)
touch_start(integer num_detected)
{
counter = 0;
}
touch(integer num_detected)
{
counter ++;
if(counter == 60) // 試してみたら、60カウントするのに4~5秒長押しでした
{
llDialog(パラメーター省略);
}
}
これで「長押し」は可能ですが、このままでは問題が出るでしょう。
というのは、押している人を考慮していないということです。
誰かが押している最中に、別の人が押したらcounterはリセットされますし(初期値設定を別の場所でやればよいわけですが)、同じ人が押し続けているのかチェックしていないからです。
その辺は、イベントのパラメーターのnum_detectedと、llDetectedKey関数と、そのキーの保持の仕方を考えれば出来ますよ。
申し訳ございません。
頑張って作りたいと思いますー
ありがとうございました^^