Ejemplo n.º 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)"));
 }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
 public void reset(MagneticBehaviour.MagneticType magneticType) {
     this.magneticType = magneticType;
     foreach (Line line in lines) {
         line.reset();
     }
 }