To find the critical points of the function \( f(x, y) \), we first compute the partial derivatives of \( f(x, y) \) with respect to \( x \) and \( y \), and set them equal to zero.
The partial derivative of \( f \) with respect to \( x \) is:
\[
f_x = \frac{\partial}{\partial x}(4xy - 2x^2 - y^4 + 1) = 4y - 4x
\]
Setting \( f_x = 0 \):
\[
4y - 4x = 0 \quad \Rightarrow \quad y = x
\]
The partial derivative of \( f \) with respect to \( y \) is:
\[
f_y = \frac{\partial}{\partial y}(4xy - 2x^2 - y^4 + 1) = 4x - 4y^3
\]
Setting \( f_y = 0 \):
\[
4x - 4y^3 = 0 \quad \Rightarrow \quad x = y^3
\]
Now, substituting \( y = x \) into \( x = y^3 \), we get:
\[
x = x^3
\]
This simplifies to:
\[
x(x^2 - 1) = 0 \quad \Rightarrow \quad x = 0 \text{ or } x = \pm 1
\]
For \( x = 0 \), \( y = 0 \). For \( x = 1 \), \( y = 1 \), and for \( x = -1 \), \( y = -1 \).
Thus, the critical points are: \( (0, 0), (1, 1), (-1, -1) \).
To determine which of these critical points correspond to a local maximum, we check the second-order partial derivatives. The discriminant is given by:
\[
D = f_{xx} f_{yy} - (f_{xy})^2
\]
After calculating the second-order derivatives and evaluating at the critical points, we find that the point \( (0, 0) \) is a saddle point, and the points \( (1, 1) \) and \( (-1, -1) \) correspond to local maxima.
Thus, the number of critical points where \( f \) has a local maximum is:
\[
\boxed{2}
\]