//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); }
//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); }
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(); } }