コード例 #1
0
ファイル: GameObject.cs プロジェクト: xulouzhe/THUAI3.0
 public virtual void Move(MoveEventArgs e)
 {
     if (e.distance == 0)
     {
         return;
     }
     lock (privateLock)
     {
         if (!this._movable)
         {
             return;
         }
         if ((DateTime.Now - lastMoveTime).TotalSeconds < 1 / _frameRate)
         {
             return;
         }
         MoveStart?.Invoke(this);
         XYPosition previousPosition = _position;
         _position = _position + new XYPosition(e.distance * Math.Cos(e.angle), e.distance * Math.Sin(e.angle));
         Debug(this, "Move from " + previousPosition.ToString() + " angle : " + e.angle + " distance : " + e.distance + " aim : " + _position.ToString());
         OnMove?.Invoke(this, e, previousPosition);
         Debug(this, "Move result poition : " + this._position.ToString());
         MoveComplete?.Invoke(this);
     }
 }
コード例 #2
0
ファイル: MoveOrderEntry.cs プロジェクト: AlexBroecker/WIP_PC
 public int MovingToCarrier()
 {
     if (!MoveStart.IsValidTrolleyPosition())
     {
         return(0);
     }
     return(MovingToCarrier(MoveStart));
 }
コード例 #3
0
 void Start()
 {
     oscillators = GetComponentsInChildren <Oscillator>();
     Debug.Log(oscillators.Length);
     state             = State.normal;
     speed_controllers = new BlockSpeedController[blocks.Length];
     for (int i = 0; i < blocks.Length; i++)
     {
         speed_controllers[i] = blocks[i].GetComponent <BlockSpeedController>();
     }
     start_blockmove = start_block.GetComponent <MoveStart>();
 }
コード例 #4
0
        public void MoveToPosition(IntVector2 position)
        {
            Position = position;
            IsMoving = true;
            float motionSpeed;

            if (IsDiagonal(Position, position))
            {
                motionSpeed = _unitSettings.MotionSpeed * 1.4f;
            }
            else
            {
                motionSpeed = _unitSettings.MotionSpeed;
            }

            _unit.transform.DOMove(new Vector3(position.x, 0, position.y), motionSpeed)
            .OnComplete(CompleteMoveHandler)
            .SetEase(Ease.Linear);

            MoveStart?.Invoke();
        }
コード例 #5
0
ファイル: MoveOrderEntry.cs プロジェクト: AlexBroecker/WIP_PC
        public override string ToString()
        {
            try
            {
                if (Info == "GET")
                {
                    return($"id { ID } : { Status } for { Unit.UnitName(Unit_ID) } {Info} from { MoveTarget } to ");
                }

                if (MoveStart == null || (MoveStart.Bridge == 0 && MoveStart.Trolley == 0))
                {
                    if (Source != null && SourceHook.IsValidPosition(Unit_ID))
                    {
                        return($"id { ID } : { Status } for { Unit.UnitName(Unit_ID) } {Info} from { Source } to ");
                    }
                    else
                    {
                        return($"id { ID } : { Status } for { Unit.UnitName(Unit_ID) } {Info} from  to { Target }");
                    }
                }

                if (MoveStart != null && MoveStart.IsValidPosition(Unit_ID))
                {
                    return($"id { ID } : { Status } for { Unit.UnitName(Unit_ID) } {Info} from { MoveStart } to { MoveTarget }");
                }

                if (Source != null && SourceHook.IsValidPosition(Unit_ID))
                {
                    return($"id { ID } : { Status } for { Unit.UnitName(Unit_ID) } {Info} from { Source } to ");
                }
                else
                {
                    return($"id { ID } : { Status } for { Unit.UnitName(Unit_ID) } {Info} from { MoveStart } to { MoveTarget }");
                }
            }
            catch
            {
                return(base.ToString());
            }
        }
コード例 #6
0
 public void SetOnPosition(IntVector2 position)
 {
     _unit.transform.position = new Vector3(position.x, 0, position.y);
     Position = position;
     MoveStart?.Invoke();
 }
コード例 #7
0
 public void MoveToPosition(IntVector2 position)
 {
     MoveStart?.Invoke();
     MoveComplete?.Invoke();
 }
コード例 #8
0
 /// <summary>
 /// マウスでウィンドウ移動開始のイベントを実行
 /// </summary>
 private void DoMoveStart()
 {
     MoveStart?.Invoke(this, new StartWindowMoveMouseEventArgs());
 }