O Tim vai acabar desgastando os seus sapatos se ele continuar deslizando pelo chão, então a gente precisa fazer ele correr. Adicione outro event:
Condição: Player -> Platform: On moved
Ação: PlayerImages -> Set animation -> para a Animation, escreva "Running" (deixe a opção 'From' com o valor 'beginning')
Execute o layout de novo e perceba três efeitos não muito realistas:
- Ele corre pra trás em vez de se virar e correr pra frente.
- Ele continua correndo mesmo depois de bater numa parede.
- Ele continua correndo parado no mesmo lugar quando você para de pressionar as setas.
Para lidar com o primeiro problema, obviamente precisamos de outra animação mostrando o Tim correndo para o outro lado. O problema é que eu não fiz uma, mas a boa notícia é que você não precisa fazer também - graças a sabedoria do Construct 2, há uma forma muito fácil de fazer ele se virar e correr pra esquerda. Adicione outro event:
Condição: Keyboard -> Key is down -> pressione a seta para a esquerda
Ação: PlayerImages -> Set mirrored (na seção 'Animations') (deixe a opção 'Mirrored' como está)
Execute o layout de novo. Ah! Assim que o Tim começa a correr para a esquerda, ele continua correndo nessa direção, mesmo quando você faz ele correr pra direita. Adicione outro event:
Condição: Keyboard -> Key is down -> pressione a seta para a direita
Ação: PlayerImages -> Set mirrored -> e dessa vez escolha a opção 'Not mirrored'
Agora o Tim corre de forma muito mais realista - só que ele ainda continua correndo mesmo depois de bater numa parede. Adicione mais dois events:
Condição: Player -> Platform: Is by wall -> Side: left
Ação: PlayerImages -> Set animation -> escreva "Standing" (deixe a opção 'From' com o valor 'beginning'))
Condição: Player -> Platform: Is by wall -> Side: right
Ação: PlayerImages -> Set animation -> "Standing"
Agora o Tim fica numa pose mais realista quando ele bate numa parede. Mas isso acaba criando um efeito colateral indesejado. Você conseguiu ver? Sim, ele fica parado nessa posição quando você o movimenta para longe da parede. Não basta somente ver se ele está encostando numa parede antes de fazermos ele parar - precisamos verificar se ele está se mexendo ou não. Então precisamos adicionar uma segunda condição:
Clique com o botão direito na condição 'Platform has wall to left' e escolha 'Add another condition':
Condição: Player -> Platform: Is moving
Mas não é isso que queremos - queremos o contrário. Sem problemas - basta invertermos a condição:
Faça o mesmo para a condição 'Platform has wall to right'. Pronto!
Agora pra resolver o problema do Tim ainda correr parado quando você solta a tecla. Talvez a essa altura do campeonato você já consiga resolver sozinho esse problema:
Condição: Player -> Platform: On stopped
Ação: PlayerImages -> Set animation -> "Standing"
Finalmente, o Tim se movimenta (e para de se mover) de uma forma mais realista.