Wall Jump per Platform 2D


14

Ho cercato un modo per implementare il wall-jump nel mio gioco xna, ma non riesco a trovare alcuna informazione a riguardo, qualcuno potrebbe qualcuno per favore aiutarmi?

Risposte:


21

Quando un giocatore si scontra con un muro mentre salta (o, se lo desideri, cade), attiva una bandiera per i successivi 100 millisecondi o giù di lì che provoca un tentativo di saltare per iniziare con successo un salto (ignorando qualsiasi controllo dei contatti di superficie) con un buona quantità di velocità sull'asse X nella direzione lontana dal muro. Ricorda di disattivare la bandiera in anticipo se viene effettivamente avviato un salto.


3
Penso che tu debba modificare la prima frase: "Quando un giocatore si scontra con un muro (mentre sta saltando) ..." altrimenti il ​​giocatore potrebbe saltare il muro rimanendo fermo sul terreno vicino a un muro, il che non sarebbe previsto.
CiscoIPPhone

@CiscoIPPhone: Sì, grazie. Ciò produrrebbe uno strano cambiamento di comportamento tra i 100 ms dopo la collisione e successivamente.
caos,

2

Onestamente avrei appena fatto un controllo puntuale. Così:

if (falling AND left_key_pressed AND !point_free(x-1,y))
    doWallJump

Potresti voler cambiare y per dire y + sprite_width / 2 (o - a seconda del tuo sistema di coordinate) in modo che controlli a sinistra del centro il tuo sprite invece che in alto (o in basso). Ecco come N implementa i controlli a muro per il salto a muro (ultimo paragrafo) .

Dopodiché devi decidere quanto vuoi che il tuo salto sul muro. Se la velocità verticale del tuo salto supera l'orizzontale prima che il giocatore sia in grado di raggiungere di nuovo quello stesso muro, non sarai in grado di saltare il muro sullo stesso muro e ricadrà gradualmente verso il basso (come nei giochi di Mario con il salto con il muro ). Se permetti all'orizzontale di essere abbastanza debole da consentire al giocatore di tornare al muro, sarà in grado di avanzare sul muro (come in Meat Boy).

Un altro approccio non menzionato è quello di Super Metroid. In quel gioco quando ti trovi contro un muro, se ti allontani da quel muro, verrà riprodotta un'animazione "muovendosi fuori dal muro" molto breve. Se salti durante quell'animazione, eseguirai un salto al muro. (Super Metroid consente anche a un giocatore di arrampicarsi su un muro usando i salti di muro, ma richiede un po 'di abilità (in effetti tutto ciò che riguarda il salto con il muro in Super Metroid richiede un bel po' di abilità ...).)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.