Exemple #1
0
    //transfer to xy
    public void txy(Vector2F v)
    {
        float d = Vector2F.Distance(pos, v);

        distance_g0       += d;
        printtime_minutes += d / f0;
        pos = v;
        g("G0 X{0:0.###} Y{1:0.###} F{2:0.###}", pos.X, pos.Y, f0);
    }
Exemple #2
0
    //move to xy
    public void mxy(Vector2F v)
    {
        float d = Vector2F.Distance(pos, v);

        distance_g1       += d;
        printtime_minutes += d / f1;
        pos = v;
        e  += e_per_mm * d;
        g("G1 X{0:0.###} Y{1:0.###} E{2:0.#####} F{3:0.###}", pos.X, pos.Y, e, f1);
    }
Exemple #3
0
        public static bool ArcCircleCollides(Vector2F arcCenter, Vector2F arcDirection, float arcRadius, float arcLength, Circle circle)
        {
            Vector2F arcDelta    = arcDirection - arcCenter;
            Vector2F circleDelta = circle.Center - arcCenter;

            if (arcDelta == circleDelta)
            {
                return(true);
            }

            if (arcDelta.Angle(circleDelta) < arcLength / 2f)
            {
                return(Vector2F.Distance(arcCenter, circle.Center) <= arcRadius + circle.Radius);
            }
            else
            {
                return(false);
            }
        }
        public override void UpdateAI()
        {
            if (isBurrowing)
            {
                if (Graphics.IsAnimationDone)
                {
                    isBurrowing = false;

                    if (isBurrowed)
                    {
                        Graphics.IsVisible = false;
                    }
                    else
                    {
                        Jump();
                        Physics.Velocity = Vector2F.Zero;
                        Graphics.PlayAnimation(GameData.ANIM_MONSTER_ZOL);
                        Graphics.PauseAnimation();
                    }
                }
            }
            else if (isBurrowed)
            {
                burrowTimer++;
                if (burrowTimer > unburrowDelay)
                {
                    float distanceToPlayer = Vector2F.Distance(RoomControl.Player.Center, Center);
                    if (distanceToPlayer < 48)
                    {
                        UnBurrow();
                    }
                }
            }
            else
            {
                base.UpdateAI();
            }
        }