public void setForceMagnitude( float force, MagneticBehaviour.MagneticType magneticType, MagneticBehaviour.Side side) { if (effector is PointEffector2D) { if (magneticType == MagneticBehaviour.MagneticType.REPEL) { ((PointEffector2D)effector).forceMagnitude = force; } else if (magneticType == MagneticBehaviour.MagneticType.ATTRACT) { ((PointEffector2D)effector).forceMagnitude = -force; } } else if (effector is AreaEffector2D) { ((AreaEffector2D)effector).forceMagnitude = force; if(side == MagneticBehaviour.Side.BOTTOM && magneticType == MagneticBehaviour.MagneticType.REPEL) { ((AreaEffector2D)effector).forceAngle = 270; } else if (side == MagneticBehaviour.Side.RIGHT && magneticType == MagneticBehaviour.MagneticType.REPEL) { ((AreaEffector2D)effector).forceAngle = 0; } else if (side == MagneticBehaviour.Side.TOP && magneticType == MagneticBehaviour.MagneticType.REPEL) { ((AreaEffector2D)effector).forceAngle = 90; } else if (side == MagneticBehaviour.Side.LEFT && magneticType == MagneticBehaviour.MagneticType.REPEL) { ((AreaEffector2D)effector).forceAngle = 180; } else if (side == MagneticBehaviour.Side.BOTTOM && magneticType == MagneticBehaviour.MagneticType.ATTRACT) { ((AreaEffector2D)effector).forceAngle = 90; } else if (side == MagneticBehaviour.Side.RIGHT && magneticType == MagneticBehaviour.MagneticType.ATTRACT) { ((AreaEffector2D)effector).forceAngle = 180; } else if (side == MagneticBehaviour.Side.TOP && magneticType == MagneticBehaviour.MagneticType.ATTRACT) { ((AreaEffector2D)effector).forceAngle = 270; } else if (side == MagneticBehaviour.Side.LEFT && magneticType == MagneticBehaviour.MagneticType.ATTRACT) { ((AreaEffector2D)effector).forceAngle = 0; } else throw (new System.Exception("Area effector should have valid side and type (MagneticBehaviour.cs)")); } else throw (new System.Exception("Effector should be point or area. (MagneticBehaviour.cs)")); }
public LinePainterTop(Vector3 objectPosition, float spriteWidth, float spriteHeight, float radious, float lineWidthMin, float lineWidthMax, int numLines, float speed, MagneticBehaviour.MagneticType magneticType) { this.spriteWidth = spriteWidth; this.spriteHeight = spriteHeight; this.distance = radious - spriteHeight / 2; this.lineWidthMin = lineWidthMin; this.lineWidthMax = lineWidthMax; this.numLines = numLines; this.speed = speed; this.magneticType = magneticType; border = new Vector3(objectPosition.x, objectPosition.y + spriteHeight / 2, 0); createLines(); }
public void reset(MagneticBehaviour.MagneticType magneticType) { this.magneticType = magneticType; foreach (Line line in lines) { line.reset(); } }