Пример #1
0
        public override void LazyAlign(double AlignSpeed)
        {
            REMOPoint temp = Pos;
            REMOPoint v;

            if (Mode == AlignMode.Horizen)
            {
                v = new REMOPoint(0, 1);
            }
            else
            {
                v = new REMOPoint(1, 0);
            }

            for (int i = 0; i < Count; i++)
            {
                this[i].MoveTo(temp, AlignSpeed);
                temp += Interval;
                if (Mode == AlignMode.Horizen)
                {
                    temp += new REMOPoint(this[i].Bound.Width, 0);
                }
                else
                {
                    temp += new REMOPoint(0, this[i].Bound.Height);
                }
            }
        }
Пример #2
0
        public void Update(REMOPoint destination, double speed)
        {
            int     size = Head.Width;
            Vector2 v    = Vector2.Normalize((destination - Head.Center).ToVector2());
            Vector2 n    = new Vector2(v.Y, -v.X);

            Head.MoveByVector((v - ((float)speed / 2) * n * (float)Math.Sin(0.1f * StandAlone.FrameTimer)) * 10.0f, speed);
            for (int i = 0; i < Bodies.Count; i++)
            {
                {
                    float interval = 0.3f;
                    float f        = (Bodies[i].Center - Head.Center).ToVector2().Length() - interval * size;
                    if (i == 0 && f > 0)
                    {
                        Bodies[i].MoveTo(Head.Center, f * interval / 2);
                    }
                    if (i != 0)
                    {
                        f = (Bodies[i].Center - Bodies[i - 1].Center).ToVector2().Length() - interval * size;
                    }
                    if (i != 0 && f > 0)
                    {
                        Bodies[i].MoveTo(Bodies[i - 1].Center, f * interval / 2);
                    }
                }
            }
        }
Пример #3
0
        } //컴포넌트 간의 간격을 반환합니다.

        public SimpleAligned(AlignMode mode, REMOPoint pos, int interval) : base()
        {
            Mode = mode;
            Pos  = pos;
            if (Mode == AlignMode.Horizen)
            {
                Interval = new REMOPoint(interval, 0);
            }
            else
            {
                Interval = new REMOPoint(0, interval);
            }
        }