Beispiel #1
0
 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)"));
 }
Beispiel #2
0
 public EffectorEmbed(Effector2D effector, MagneticBehaviour.Side side) {
     this.side = side;
     this.effector = effector;
     effectorDistance = calculateEffectorDistance();
 }