flagflag  If you want to see English page, please click "English" Button at Left.
1: 2009-08-13 (木) 16:48:56 iseki ソース 2: 2009-08-13 (木) 17:12:57 iseki ソース
Line 1: Line 1:
** SIM Boundary [#obc15ec7] ** SIM Boundary [#obc15ec7]
 +- OpenSim/Region/Physics/OdePlugin/OdePlug​in.cs の Move() 関数の actor.UpdatePositionAndVelocity() のところを修正.
 +
 + if (actor != null) {
 +   actor.UpdatePositionAndVelocity();
 +
 +   // by Fumi.Iseki  for falling at SIM boundary
 +   d.Vector3 vec = d.BodyGetPosition(actor.Body);
 +
 +   if (vec.Y<=0.0f || vec.Y>=255.95f || vec.X<=0.0f || vec.X>=255.95f) {
 +       if      (vec.Y<=0.0f)  vec.Y = 0.1f;
 +       else if (vec.Y>255.95f) vec.Y = 255.95f;
 +       if      (vec.X<=0.0f)  vec.X = 0.1f;
 +       else if (vec.X>255.95f) vec.X = 255.95f;
 +
 +       float height = _origheightmap[(int)vec.Y * Constants.RegionSize + (int)vec.X];
 +       if (actor.Flying) {
 +           if (vec.Z  <  height + 2) {
 +               vec.Z = height + actor.Size.Z/2;
 +               actor.Velocity.Z = 0;
 +               actor.IsColliding = true;
 +           }
 +       }
 +       else {
 +           if (vec.Z < height + actor.Size.Z/2) {
 +               vec.Z = height + actor.Size.Z/2;
 +               actor.Velocity.Z = 0;
 +               actor.IsColliding = true;
 +               actor.CollidingGround = true;
 +           }
 +       }
 +
 +       actor.Position = new PhysicsVector(vec.X, vec.Y, vec.Z);
 +       d.BodySetPosition(actor.Body, vec.X, vec.Y, vec.Z);
 +   }
 + }


トップ   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 4月翌月
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
<今日>

オンライン状況

83 人のユーザが現在オンラインです。 (17 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 83

もっと...

アクセスカウンタ

今日 : 3045304530453045
昨日 : 1889718897188971889718897
総計 : 2341664223416642234166422341664223416642234166422341664223416642
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com