Spero che tutti abbiamo giocato a Zelda: A Link to the Past, per favore correggimi se sbaglio, ma voglio emulare quel tipo di movimento di personaggi 2D dall'alto verso il basso con un tocco di correzione. È stato fatto in altri giochi, ma ritengo che questo riferimento sia il più facile da mettere in relazione. Più specificamente il tipo di movimento e correzione di cui sto parlando è:
- Il movimento fluttuante non si limita al movimento basato su tessere come Pokemon e altri giochi in cui un tocco del pad di movimento ti sposta di un quadrato in quella direzione cardinale. Questo movimento fluttuante dovrebbe essere in grado di ottenere un movimento diagonale.
- Se cammini verso ovest e raggiungi un muro diagonale in modo nord-est / sud-ovest, verrai corretto in un movimento sud-ovest anche se continui a tenere la sinistra (ovest) sul controller. Questo dovrebbe funzionare per entrambe le diagonali correggendo in entrambe le direzioni.
- Se sei a pochi pixel dal camminare dritto in una porta o in un corridoio, sei corretto nel camminare attraverso la sala o giù per il corridoio, vale a dire urtare un angolo ti fa spingere nella sala / porta.
Ho cercato modi efficaci per raggiungere questo obiettivo e non ho avuto fortuna. Per essere chiari, sto parlando del movimento del personaggio umano, non del movimento di un NPC. Le loro risorse sono disponibili su questo tipo di movimento? Equazioni o algoritmi spiegati su una wiki o qualcosa del genere?
Sto usando XNA Framework, c'è qualcosa per aiutarci in questo?