[c++/allegro5]chiarimenti sul gameloop

Giorgio Buttiglieri

Nuovo Utente
1
0
Buongiorno a tutti, sono nuovo e questo è il mio primo thread in questo forum; spero dunque di non aver sbagliato la sezione.

Volevo chiarimenti riguardo alla mia idea di come scrivere un semplice platform 2D simile a mario bross con allegro(ho iniziato da questa libreria perché sono abbastanza novizio in campo di videogame...).

Ecco come intendo impostare il progetto, poi ditemi se sbaglio.

1) Inizializzo allegro
2) creo una classe per il personaggio che conterrà le variabili indicanti posizione(x, y)e l'immagine che userò per riprodurre il protagonista e i suoi movimenti. Inoltre scriverò un metodo movement per muovere il personaggio.
3)creo una classe per la mappa che sarà formata da una matrice di char che popolerò con i risultati ottenuti dal foglio di TiledMap. Scriverò il metodo draw() che disegnerà a schermo la mappa intera ad ogni frame.

Infine arriva il punto più "difficile" per le mie scarse conoscenze di game development: la gestione delle collisioni e la gestione della telecamera.

Per quanto riguarda le collisioni, all'inizio ho pensato di far muovere il personaggio della grandezza di un tile. Per far capire meglio: supponiamo che il tile sia di 32 pixel per 32 pixel, il personaggio si muoverà di 32 pixl alla volta, poi eseguo un check nella matrice per vedere se il quadratino in cui si sta per spostare il personaggio è solido o meno. Tuttavia in questo modo il personaggio si sposta troppo velocemente e se tento di rallentare il timer che gestisce l'udate del personaggio, il suo movimento è troppo meccanico...

quindi ho pensato di muovere il personaggio alla velocità di 1/3 della lunghezza del tile ed eseguire il controllo di collisione utilizzando la bounding box, ma il problema è che non so come eseguire il controllo con ogni singolo tile.

Invece per quanto riguarda la telecamera, ho pensato semplicemente di: caricare tutta la mappa (che ovviamente sarà più grande dello schermo) nella matrice di tile, e quando il personaggio si trova più o meno a metà schermo sposto tutti i tiles nella direzione opposta al personaggio con una velocità pari a quella del personaggio.


Quindi, ricapitolando:

1) è corretta la mia impostazione del ciclo di gioco?
2) come eseguo il controllo bounding box con tutti i tiles della matrice?
3) è corretto il mio metodo di gestione della telecamera?



Grazie mille per l'aiuto.

Ciao
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili