Я не знаком с cocos2d, поэтому не могу помочь со спецификой, но:
Если вы можете определить, что игрок столкнулся с NPC, просто проверьте, является ли нижняя часть игрока тем, что столкнулось сверхняя часть NPC.Если это так, он, должно быть, приземлился на голову.
Чтобы быть уверенным, вы также можете проверить, указывает ли скорость игрока, что он движется вниз, но, вероятно, в этом нет необходимости.