• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 1 voto(i) - 5 media
  • 1
  • 2
  • 3
  • 4
  • 5
[DARK GDK] Iniziare a scrivere un giochino 2D...Alcuni chiarimenti..
#9
Guarda, avevo già visto che c'era sia la dbSpriteCollision che la dbSpriteHit, ma ti dico la verità non avevo capito la differenza, anzi grazie per avermela fatta capire...Wink

Il problema è che non sono convinto di come sto cercando di gestire le cose...Purtroppo si riscontrano dei grossi problemi che non so come superare...Ho anche googlato ma non sono riuscito a venirne a capo...Ora cerco di spiegarvi:

Vi posta questa immagine così riesco a farmi capire meglio

[Immagine: immaginerr.png]

Quello che ho fatto io è stato di controllare se il mio omino è a contatto con qualcosa, se ottengo che è a contatto con le sprite dei muri del terreno non faccio nulla, altrimenti se arrivo in una buca ottengo che dbSpriteCollision non mi da risultati quindi so che l'omino sta cadendo, per fare cio ho semplicemente scritto:
Codice:
int risColl = dbSpriteCollision(3, 0);
if ((risColl == 0 || risColl==1) && !jumping)
{
    dbMoveSprite(3, -5);
}
Fin qui sembra che la cosa, con qualche accorgimento possa funzionare...Il problema sorge quando arriviamo in corrispondenza del blocco 6, li, attraverso questo codice:
Codice:
if ( dbRightKey())
{    
    bool collisione=false;
    int risColl = dbSpriteCollision(3, 0);
    if (risColl !=0)
    {
        int xH=dbSpriteX(3);        
        if (dbSpriteX(3) < dbSpriteX(risColl) && dbSpriteY(risColl) < dbSpriteY(3)+dbSpriteHeight(3))
            collisione=true;
    }

    if (collisione==false)
    {
        dbRotateSprite(3,90);
        dbMoveSprite(3,3);
        dbRotateSprite(3,0);
    }

}
Volevo fare in modo che si bloccasse in corrispondenza di quel blocco...Il problema è questo:
la funzione dbSpriteCollision (e anche la dbSpriteHit), restituiscono una sola collisione per volta, dando la priorità alla sprite generata per prima, quindi quando sono in collisione con il blocco 6, lo sono anche con il 5, e la funzione mi restituisce l'indice 5 non facendosi avverare le condizioni scritte nel codice sopra e quindi l'omino non si ferma Sad...Non so se sono riuscito a farmi capire, ma prorio non riesco a venirne fuori...Forse sono totalmente fuori strada con il metodo di gestione che ho adottato...
Sapreste dirmi qualcosa sul problema che ho esposto, o un consiglio su un'altra soluzione da adottare per gestire i terreni dove l'omino cammina??
 
Rispondi
  


Messaggi in questa discussione
RE: [DARK GDK] Iniziare a scrivere un giochino 2D...Alcuni chiarimenti.. - da TheFedex87 - 23-03-2011, 08:32 PM

Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Collisioni 2D ossen97 5 1,954 09-04-2011, 07:18 PM
Ultimo messaggio: steve
  Dark GDK + Visual C++ Riddick 22 6,754 27-03-2011, 12:40 AM
Ultimo messaggio: Zapetino
  Vendere un gioco con Dark GDK Adanf 5 2,097 15-02-2011, 02:01 PM
Ultimo messaggio: Adanf

Vai al forum:


Browsing: 4 Ospite(i)