Os estados não são ações, no seu jogo eles controlariam como o personagem é atualizado (por exemplo, cada estado pode ter sua própria função update ()).
Dê uma olhada no diagrama nesta página:
http://en.wikipedia.org/wiki/State_diagram . Os estados nos dizem algo sobre o mundo (a porta está aberta ou fechada). As ações nos mostram o que leva o mundo de um estado para outro.
No seu caso, você pode ter estados como:
- pulando
- corrida
- na dor
- queda
- morto
E a transição entre estados (os eventos / flechas entre estados) seria uma contribuição do jogador e reações ao mundo, como:
- atingido por monstro
- botão de salto pressionado
- botão de disparo pressionado
Cada estado precisa verificar se algum evento relevante ocorreu. Normalmente, isso é feito com instruções if.
Mas o que acontece quando você está correndo quando sofre danos?
O hit by monster
evento seria acionado e faria a transição do jogador para o in pain
estado.
ou pulando sofrendo danos e atirando ao mesmo tempo?
O jogador faria a transição para o in pain
estado novamente, onde é possível exibir o sprite "hit" que mostra o personagem caindo para trás.
Você provavelmente não vai escapar de instruções if, mas pode evitar instruções profundamente aninhadas.