flagflag  If you want to see English page, please click "English" Button at Left.
3: 2009-08-24 (月) 16:16:06 iseki ソース 現: 2009-08-31 (月) 18:31:57 iseki ソース
Line 1: Line 1:
** SIM Boundary [#obc15ec7] ** SIM Boundary [#obc15ec7]
-- OpenSim/Region/Physics/OdePlugin/OdePlug​in.cs Simulate() 関数の actor.UpdatePositionAndVelocity() のところを修正.+- OpenSim/Region/Physics/OdePlugin/OdePlug​in.cs 
 +- Simulate() 関数内の actor.UpdatePositionAndVelocity() へチェックコードを追加.
 if (actor != null) {  if (actor != null) {
   actor.UpdatePositionAndVelocity();    actor.UpdatePositionAndVelocity();
 + 
   // by Fumi.Iseki  for falling at SIM boundary    // by Fumi.Iseki  for falling at SIM boundary
   d.Vector3 vec = d.BodyGetPosition(actor.Body);    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>=255.95f || vec.X<=0.0f || vec.X>=255.95f) {
       if      (vec.Y<=0.0f)  vec.Y = 0.1f;        if      (vec.Y<=0.0f)  vec.Y = 0.1f;
Line 13: Line 14:
       if      (vec.X<=0.0f)  vec.X = 0.1f;        if      (vec.X<=0.0f)  vec.X = 0.1f;
       else if (vec.X>255.95f) vec.X = 255.95f;        else if (vec.X>255.95f) vec.X = 255.95f;
- +  
-       float height = _origheightmap[(int)vec.Y * Constants.RegionSize + (int)vec.X];+       float height = GetTerrainHeightAtXY(Vec.X, Vec.Y);
       if (actor.Flying) {        if (actor.Flying) {
           if (vec.Z  <  height + 2) {            if (vec.Z  <  height + 2) {
Line 30: Line 31:
           }            }
       }        }
 + 
       actor.Position = new PhysicsVector(vec.X, vec.Y, vec.Z);        actor.Position = new PhysicsVector(vec.X, vec.Y, vec.Z);
       d.BodySetPosition(actor.Body, 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
<今日>

オンライン状況

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

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

もっと...

アクセスカウンタ

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