                 for boid in flock {
                     boid.evade(touchLocation)
                 }
-                shouldIgnoreReturnTouch = true
+
+                // Provide haptic feedback when switching to Evade
+                if !touchDownOccurred {
+                    feedbackGenerator.impactOccurred()
+                }
+                touchDownOccurred = true
             default:
                 break
             }

    private var frameCount:Int = 0
    private let neighborhoodUpdateFrequency = 31
    private let perceptionUpdateFrequency = 37
    private var shouldIgnoreReturnTouch = false

    override func didMove(to view: SKView) {
        self.backgroundColor = SKColor.black

            let normalTouchRange: ClosedRange<CGFloat> = 0.0...0.7
            let forceTouchRange: ClosedRange<CGFloat> = 0.7...CGFloat.greatestFiniteMagnitude
            
            // Prepare the Taptic Engine to reduce latency
            feedbackGenerator.prepare()
            
            // Use light touches as Seek and heavy touches as Evade
            switch touch.force {
            case normalTouchRange:
                guard !touchDownOccurred else { return }
                for boid in flock {
                    boid.seek(touchLocation)
                }
