Leon,
You do not need a WhenEvent because your discontinuity is in the parameters and not the integration variables:
s = NDSolve[{v = Sqrt[x'[t]^2 + y'[t]^2];
m * x''[t] == -If[y[t] >= H1, ka, kw] * v * x'[t],
m * y''[t] == -m * g - If[y[t] >= H1, ka, kw] * v * y'[t],
x'[0] == v0, x[0] == 0, y'[0] == 0, y[0] == H1 + H2}, {x, y}, {t,
0, 10}];
Also, Delete this line -- it creates a definition that will mess up your results when you try to change parameters and it does nothing to help:
{x[t], y[t]} = {x[t], y[t]} /. s[[1]]
Just plot the results:
Plot[{x[t], y[t]} /. s, {t, 0, 6}]
ParametricPlot[{x[t], y[t]} /. s[[1]], {t, 0, 6},
AxesLabel -> {"x[mm]", "y[mm]"}, PlotRange -> {{0, 10}, {0, 16}}]
If your discontinuity were a "nasty" one that causes chatter or other integration problems, you would consider adding a WhenEvent with a discrete variable. Something along the lines of:
s = NDSolve[{v = Sqrt[x'[t]^2 + y'[t]^2];
m x''[t] == -(If[kz[t] == 1, ka, kw]) v x'[t],
m y''[t] == -m g - (If[kz[t] == 1, ka, kw]) v y'[t], x'[0] == v0,
x[0] == 0, y'[0] == 0, y[0] == H1 + H2, kz[0] == 0,
WhenEvent[y[t] == H1, kz[t] -> "DiscontinuitySignature"]}, {x, y,
kz}, {t, 0, 10}, DiscreteVariables -> {Element[kz, {-1, 0, 1}]}];
but you do not need it here because you pass through the discontinuity and do not "bang around" on top of it.
Also, you should post code using the upper left button so it formats properly, Lastly, the forum moderators will likely chastise you for posting the same issue twice. :)
Regards,
Neil