Esempio n. 1
0
        void ProcessMove(IComponentMessage msg)
        {
            //if (isAbleToMove) {
            //isAbleToMove = false;

            switch (msg.ComponentMessageType)
            {
            case ComponentMessageType.MoveBackward:
                solidBody.AddToCoords(0, speed);
                break;

            case ComponentMessageType.MoveLeft:
                solidBody.AddToCoords(-speed, 0);
                break;

            case ComponentMessageType.MoveRight:
                solidBody.AddToCoords(speed, 0);
                break;

            case ComponentMessageType.MoveForward:
                solidBody.AddToCoords(0, -speed);
                break;
            }

            Owner.IsUpdated = true;
            //}
        }
Esempio n. 2
0
        void ProcessMove(IComponentMessage msg)
        {
            //if (isAbleToMove) {
            //isAbleToMove = false;
            double angle = solidBody.Angle;

            switch (msg.ComponentMessageType)
            {
            case ComponentMessageType.MoveBackward:
                angle += 180;
                break;

            case ComponentMessageType.MoveLeft:
                angle -= 90;
                break;

            case ComponentMessageType.MoveRight:
                angle += 90;
                break;
            }

            angle = angle * Math.PI / 180;
            int dX = (int)Math.Round(Cos(angle) * speed),
                dY = (int)Math.Round(Sin(angle) * speed);

            solidBody.AddToCoords(dX, dY);
            Owner.IsUpdated = true;
            //}
        }
Esempio n. 3
0
        void ProcessTickElapsed(IComponentMessage msg)
        {
            double angle = solidBody.Angle;

            angle = angle * Math.PI / 180;
            int dX = (int)Math.Round(Math.Cos(angle) * speed),
                dY = (int)Math.Round(Math.Sin(angle) * speed);

            solidBody.AddToCoords(dX, dY);
            Owner.IsUpdated = true;
        }