Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++ Allegro 5] consigli su tile map?

    Salve a tutti. Sto facendo un giochino 2d (simile alle versioni vecchie di pokemon per intenderci) giusto per divertimento utilizzando le librerie di Allegro 5. Nel gioco c'è un personaggio che cammina in un mondo. Per le collisioni ho agito in questo modo:
    Ho scaricato il programma tiled map che permette di creare dei file txt contenenti le informazioni necessarie per le tile map. I numeri contenuti nel documento vengono letti dal programma ed assegnati a due array multidimensionali: 1 per stampare il quadratino ed uno per determinare le collisioni. Ad ogni ciclo viene scansionato l'array utilizzando un doppio ciclo for e viene stampata la mappa e verificate le collisioni (è un po' difficile da spiegare, se non capite ditelo che metto uno pseudo-codice). Tutto funziona bene, le collisioni funzionano, però c'è un problema: mettiamo che ogni tile sia di 30px * 30px, per poter verificare le collisioni c'è bisogno che il personaggio si muova di 30px in 30px, e per rendere visibile lo spostamento ho dovuto aggiungere un ALLEGRO_TIMER molto lento che faccia spostare il personaggio di 30px ogni 9.0 / 60.0 secondi (se non aggiungessi il timer il personaggio viaggerebbe velocissimo). Però in questo modo il personaggio cammina a scatti, perchè si sposta di 30 px in 30... quindi ho pensato di farlo muovere di 15 in 15 e ogni volta che viene cambiata direzione, il personaggio , nel caso il si trovi in mezzo al tile, viene messo al giusto posto.
    Tutto questo solo per far coincidere le collisioni. Tuttavia questo metodo non mi convince a pieno, esiste un altro modo per rendere il gioco più naturale?
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  2. #2
    è un bel casino... o te ne freghi e lo fai muovere a scatti, oppure puoi tenere la sua posizione in due posti diversi:
    uno in cui lui effettivamente si trova, fra un tile e l'altro - che usi per visualizzarlo
    uno in cui "va a scatti", che usi solo per fare il calcolo delle collisioni. Che aggiorni solo quando quello di cui sopra si è effettivamente spostato in un altro tile

  3. #3
    grazie mille, però pensandoci un secondo: in questo modo l'immagine "fittizia" oltrepasserebbe metà dei tiles cui non potrebbe passare
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  4. #4
    non so dipende da come lo implementi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.