Пример #1
0
        /// <summary>
        /// 向きを変更する
        /// </summary>
        public void ChengeDirection(MODELE_DIRECTION Direction)
        {
            //現在の座標を保存
            GetModelLocation();

            //候補リスト
            List <IfsLiplisModel> CandidateModelList = new List <IfsLiplisModel>();

            //対象の向きのモデルを検索
            foreach (var model in ModelList)
            {
                //左向き以外を候補リストに追加
                if (model.Direction != (int)Direction)
                {
                    CandidateModelList.Add(model);
                }
            }

            //空なら全対象
            if (CandidateModelList.Count == 0)
            {
                CandidateModelList.AddRange(ModelList);
            }

            //シャッフルする
            CandidateModelList.Shuffle();

            //アクティブモデルを変更
            this.ActiveModel = CandidateModelList[0];

            //モデルビジブル再設定
            SetModelVisible();
        }
Пример #2
0
        /// <summary>
        /// ランダムに向きを変更する
        /// </summary>
        public void ChangeDirectionRandam()
        {
            //現在の座標を保存
            GetModelLocation();

            //選択モデル
            IfsLiplisModel selectModel = GetDirectionModel(this.Position);

            //選択名が空なら0番目を取得
            if (selectModel == null)
            {
                selectModel = ModelList[0];
            }

            //アクティブモデルを変更
            this.ActiveModel = selectModel;

            //位置の復元
            SetModelLocation();

            //モデルビジブル再設定
            SetModelVisible();
        }
Пример #3
0
        /// <summary>
        /// アクティブモデルをセットし、モデルを一つ表示する
        /// まずは正面をアクティブにする
        /// </summary>
        private void SetActiveModel()
        {
            //フロントモデルの検索
            foreach (IfsLiplisModel model in ModelList)
            {
                //正面のモデルが見つかったら採用
                if (model.Direction == (int)MODELE_DIRECTION.FRONT)
                {
                    this.ActiveModel = model;
                    break;
                }
            }

            //フロントモデルが見つからなければ1つ目をアクティブとする。
            if (this.ActiveModel == null)
            {
                this.ActiveModel = ModelList[0];
            }

            //ここでビジブル設定すると、初期にアクティブにしたモデル以外動かなくなる。
            //ビジブル設定
            InitVisible();
        }