예제 #1
0
파일: Program.cs 프로젝트: Rahil627/Engine
 private void ApplyMouseVelocityToVectorGrid()
 {
     if (Input.LeftMousePressed)
     {
         LastMousePosition = Input.Mouse;
     }
     else if (Input.LeftMouseDown)
     {
         var diff = Input.Mouse - LastMousePosition;
         if (diff.LengthSquared >= 1)
         {
             var       diffNormal      = (diff).Normalized();
             const int MouseDistanceSq = 100 * 100;
             for (var x = 0; x < grid.Width; x++)
             {
                 for (var y = 0; y < grid.Height; y++)
                 {
                     if ((Input.Mouse - grid.GridPositionToWorldPosition(new Vector2(x, y))).LengthSquared <= MouseDistanceSq)
                     {
                         var tile = grid.Get(x, y);
                         if (tile != null)
                         {
                             tile.Vector = diffNormal;
                         }
                     }
                 }
             }
         }
         LastMousePosition = Input.Mouse;
     }
 }
예제 #2
0
 public void ApplyVectorGridSynchronously(VectorGrid _vectorGrid)
 {
     foreach (var particle in particles)
     {
         var tile = _vectorGrid.Get(_vectorGrid.WorldPositionToGridPosition(particle.Position));
         if (tile != null)
         {
             particle.ApplyForce(0.001f * tile.Vector * Game.Delta);
         }
     }
 }