public static bool runTests() { Box b1 = new Box(0, 0, 2, 2); Rectangle r1 = new Rectangle(1, -1, 1, 4); Box expected1 = new Box(1, 0, 1, 2); Box result1 = b1.shrinkWrap(r1); if (!expected1.Equals(result1)) return false; Rectangle r2 = new Rectangle(1, 0, 3, 3); Box expected2 = new Box(1, 0, 1, 2); Box result2 = b1.shrinkWrap(r2); if (!expected2.Equals(result2)) return false; Rectangle r3 = new Rectangle(-1, -1, 4, 4); Box result3 = b1.shrinkWrap(r3); if (!b1.Equals(result3)) return false; Rectangle r4 = new Rectangle(1, 1, 1, 1); Box result4 = b1.shrinkWrap(r4); if (!result4.Equals(new Box(r4))) return false; Box b2 = new Box(0.5f,0.5f, 2f,2f); Rectangle r5 = new Rectangle(0, 0, 3, 3); Box result5 = b2.shrinkWrap(r5); if (!result5.Equals(b2)) return false; return true; }
public static bool runTests() { Box b1 = new Box(0, 0, 2, 2); Rectangle r1 = new Rectangle(1, -1, 1, 4); Box expected1 = new Box(1, 0, 1, 2); Box result1 = b1.shrinkWrap(r1); if (!expected1.Equals(result1)) { return(false); } Rectangle r2 = new Rectangle(1, 0, 3, 3); Box expected2 = new Box(1, 0, 1, 2); Box result2 = b1.shrinkWrap(r2); if (!expected2.Equals(result2)) { return(false); } Rectangle r3 = new Rectangle(-1, -1, 4, 4); Box result3 = b1.shrinkWrap(r3); if (!b1.Equals(result3)) { return(false); } Rectangle r4 = new Rectangle(1, 1, 1, 1); Box result4 = b1.shrinkWrap(r4); if (!result4.Equals(new Box(r4))) { return(false); } Box b2 = new Box(0.5f, 0.5f, 2f, 2f); Rectangle r5 = new Rectangle(0, 0, 3, 3); Box result5 = b2.shrinkWrap(r5); if (!result5.Equals(b2)) { return(false); } return(true); }
protected Vector2 adjustPos(ref Box mover, Rectangle platform, Axis axis) { Rectangle checkRect = mover.rect; checkRect.Inflate(1, 1); Box delta = mover.shrinkWrap(Rectangle.Intersect(checkRect, platform)); if (axis == Axis.X) { if (mover.Left >= platform.Left && mover.Right <= platform.Right) { return(Vector2.Zero); } return(new Vector2(delta.Width, 0)); } else { if (mover.Top >= platform.Top && mover.Bottom <= platform.Bottom) { return(Vector2.Zero); } return(new Vector2(0, delta.Height)); } }
protected Vector2 adjustPos(ref Box mover, Rectangle platform, Axis axis) { Rectangle checkRect = mover.rect; checkRect.Inflate(1, 1); Box delta = mover.shrinkWrap(Rectangle.Intersect(checkRect, platform)); if (axis == Axis.X) { if (mover.Left >= platform.Left && mover.Right <= platform.Right) return Vector2.Zero; return new Vector2(delta.Width, 0); } else { if (mover.Top >= platform.Top && mover.Bottom <= platform.Bottom) return Vector2.Zero; return new Vector2(0, delta.Height); } }