Collisioni 2D - Versione stampabile +- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi) +-- Forum: Altri Programmi per la Creazione di Videogames (https://www.making-videogames.net/giochi/Forum-Altri-Programmi-per-la-Creazione-di-Videogames) +--- Forum: Darkbasic Pro, DarkGDK (https://www.making-videogames.net/giochi/Forum-Darkbasic-Pro-DarkGDK) +---- Forum: DarkGDK (https://www.making-videogames.net/giochi/Forum-DarkGDK) +---- Discussione: Collisioni 2D (/thread-Collisioni-2D) |
Collisioni 2D - ossen97 - 09-04-2011 Ciao a tutti, sto facendo delle piccole prove con DarkGDK e sono riuscito a far muovere uno sprite. Volevo mettere un tavolo e fare in modo che il PG si fermasse alla collisione con esso. Il mio codice è questo, ma non va: Codice PHP: #include <DarkGDK.h> Mi potete dire cosa c'è che non va? Grazie in anticipo, ciao! RE: Collisioni 2D - steve - 09-04-2011 Sposta collisione=dbSpriteCollision(2,1); dentro il loop principale (il ciclo while), in questo modo esegui il controllo ad ogni refresh dello schermo. RE: Collisioni 2D - ossen97 - 09-04-2011 (09-04-2011, 06:20 PM)steve Ha scritto: Sposta collisione=dbSpriteCollision(2,1); dentro il loop principale (il ciclo while), in questo modo esegui il controllo ad ogni refresh dello schermo. Funziona! Grazie mille Steve! RE: Collisioni 2D - Zapetino - 09-04-2011 [edit] Anticipato XD RE: Collisioni 2D - ossen97 - 09-04-2011 E rieccomi a rompere! xD Ho un altro problema, lo sprite collide, solo che si ferma e non si muove più, dato che entra di 5 pixel all'interno del tavolo. Come posso fare?? Ho provato a far tornare indietro lo sprite, solo che, ovviamente, funziona solo da un lato questo metodo. Come posso risolvere? RE: Collisioni 2D - steve - 09-04-2011 Non è per i 5 pixel che non si muove, è perché non hai gestito correttamente le collisioni. Nel tuo codice dici: se lo sprite collide, non fare niente; invece dovresti dire: se lo sprite collide a destra, non farlo muovere a destra (e viceversa: se collide a sinistra non farlo muovere a sinistra). Secondo me ti conviene creare 2 funzioni (una per la collisione a destra e una per la collisione a sinistra) che ti ritornano true se avviene la collisione. Prova a pensare come potresti farle, in caso hai problemi facci sapere che ti aiutiamo. |