42 Video
238 minuti
Parliamo di collisioni perché io ovviamente interessati a sapere che il mio giocatore è stato colpito da uno dei picchi. La prima cosa che faccio è cercare su una cosa che ha la classe Stage per ottenere i contorni degli oggetti, e la modalità di debug. Ti faccio vedere come entrare in modalità debug per vedere nel dettaglio gli attori che abbiamo sul palco, e capirete perché. Per prima cosa ho chiamare il metodo setDebugAll per indicare che quando si corre
mostrare i bordi degli oggetti. Se passiamo vero, il bordo di ogni oggetto in una linea di confine che l'attore quindi sappiamo appariranno i propri limiti. Hanno bisogno di lavorare per dare agli attori alcune dimensioni, e non abbiamo fatto, ho dato solo posizioni. La prima cosa che voglio fare è dare le dimensioni dell'attore. E posso farlo direttamente dal produttore, in quanto le texture e TextureRegions hanno metodi per
la larghezza e l'altezza della texture, ed è perfetto per me dire il mio attore, 'Hey, la nuova dimensione (con setSize) è pinchos.getRegionWidth () . Per la larghezza della regione, e pinchos.getRegionHeight (), per ottenere alto 'Così sappiamo quanto alto i ActorPinchos: che misurano la consistenza. Con ActorJugador è lo stesso. Questo quello che si sa, perché l'ho fatto nei primi video: getWidth () e getHeight ().
Questo, combinato con questo altro, perché abbiamo bisogno le sue dimensioni, permette di ottenere direttamente questo bordo verde andare a vedere ora in giro il nostro carattere. Con questo più o meno quello che possiamo fare è quello di determinare quali sono i limiti, e ci aiuterà a vedere come possiamo fare viene rilevato quando vi è stata una collisione. Tornerò al mio Skitch per capire come me la caverò collisioni. Ci sono modi migliori per la loro gestione, e presto
vediamo come possiamo iniziare ad introdurre Box2D, una tecnologia molto interessante che ci permetterà di aggiungere fisica realistica al gioco, e come individuare meglio si ottiene una collisione. Per il momento studieremo come ottenere un semplice algoritmo di aprire bocca per più tardi. A questo punto siamo in grado di ridurre il nostro attore a un quadrato. Tutti gli attori, insomma. Abbiamo un giocatore e hanno uno spiedino.
Quello che ci interessa è quello di rilevare quando questo si è verificato: cioè quando le punte si sono scontrati con l'attore. A quanto pare c'è un modo semplice per vedere quando ci ha colpito; e qui abbiamo questa linea verticale, che sarebbe corrispondente alla posizione X del giocatore. Quando diciamo setX () è indichiamo è dove ottiene questa linea perché l'origine di coordinate indicato sul lato sinistro. Sappiamo cosa vasta è l'attore,
quindi è facile determinare il bordo destro facendo una somma di X + WIDTH. Allo stesso modo, siamo in grado di ottenere il bordo sinistro dei nostri spiedini utilizzando X nel caso degli spiedini. Quando si verifica una collisione, una cosa interessante accade: si verificano le collisioni perché il bordo sinistro nostri ActorPinchos è più a sinistra, cioè, X vale meno, rispetto al valore di X + Larghezza di punte. Se facciamo un confronto tra pinchos.x
e (jugador.x + jugador.width), ciò che accade è che c'è una collisione è perché il primo è minore della seconda. Se questa condizione è vera, c'è una collisione, in quanto le punte sono letteralmente all'interno del lettore. Questa è la prima strategia per rilevare le collisioni. Utilizzando il metodo di rendering prima di chiamare draw () una chiamata di metodo chiamato comprobarColisiones () che creerà ora. Vi è una certa discrepanza contro
quando aggiornare e disegnato. Non fatevi ingannare: sempre Actualizad prima di disegnare. Perché se non lo fai, se lo si fa il contrario, vale a dire, meteis draw () prima, hai un problema, perché le collisioni saranno controllati dopo aver effettuato l'atto (), e l'atto () non sarà il il giocatore sta guardando. Come il draw () è stato fatto prima che il giocatore non percepisce. E in giochi che hanno un sacco di movimento questo è un problema,
così prima avrebbe fatto gli aggiornamenti e controlli e, infine, quando tutto è pronto dibujadlo. Soprattutto con Box2D, questo sarà molto importante. L'ultima cosa che voglio fare è scrivere i comprobarColisiones () metodo per controllare quello che ho detto. Se il bordo destro del lettore è maggiore il bordo sinistro delle mie punte, è perché c'è stata una collisione. Buon tempo per uccidere il giocatore, in fondo. Le posso mettere una condizione
è vivo, e da un getter e setter posso modificare o controllare se il lettore è vivo o no. Ora quello che faccio, infine, è che se il giocatore è vivo e lui si è scontrato, collisione stampato. Io voglio fare questo, perché se non, la collisione messaggio mentre si muove le punte sono seguiti apparirà decine di volte. Per finire essendo bene è la setAlive è fatto falso di non ancora vero valore. Questo per evitare la stampa
Spesso il messaggio collisione. Questo è un modo un po 'rozzo e sporco, ma permette di controllare da un modello matematico ... - buona. Ci vediamo il motivo per cui non funziona. Forse perché si è dimenticato di mettere questo. Si vero. Perdonate questo dettaglio: quando si avvia il gioco, l'avvio dal vivo. Si Adesso. Ha detto che da modelli geometrici di base come rettangoli possiamo vedere quando c'è stata una collisione. Questa tecnica è chiamata parallelepipedi limite.
Non è la migliore tecnologia per controllare le collisioni, ma i giochi 2D di base è. Tuttavia, con Box2D abbiamo un sistema migliore per integrare fisica.
Circa l'autore
Biografia: Analista Programmatore-in diverse lingue. piattaforme Tutor PREMIUM riconosciuti a livello mondiale come CodigoFacilito. articoli Editor Cristalab. Il mio canale YouTube è sponsorizzato dalla casa editrice ANAYA e LaTostadora. Mi piace spiegare in dettaglio e dare alcuni esempi per evitare ogni dubbio.