       @vel.y = -@vel.y * 0.5
 
   draw: (ctx) =>
+    ### Draw this Particle using the context <ctx>. ###
     ctx.save()
     ctx.beginPath()
 

    MOUSE.pos.x = evt.clientX - rect.left
    MOUSE.pos.y = evt.clientY - rect.top

  # Make the particles explode away from the mouse
  explode_particles: (evt) =>
    for particle in @particles
      difference = Vector.subtract(MOUSE.pos, particle.pos)
      dist = Math.max(difference.mag(), 1)
      
      push_force = -1000 
      vel_mag = push_force / dist
      particle.vel.plus(Vector.unit(difference).s_mult(vel_mag))

    delta_pos = Vector.add(@vel, Vector.s_mult(accel, tick).s_div(2))
    @pos.plus(delta_pos.s_mult(tick))

    f = @force(@pos, @vel)
    accel2 = Vector.s_div(f, @mass)

    # Update velocity
    delta_vel = Vector.add(accel2, accel).s_div(2)
    @vel.plus(delta_vel.s_mult(tick))

    # Bounds check
    if @pos.x < 0 or @pos.x > canvas.width
      @pos.x = Math.min(Math.max(@pos.x, 0), canvas.width)
