E' normale che ti dia quegli errori poichè hai sbagliato.
Non puoi mettere in un file .h questo

codice:
Gun(Game* game);//<-------------------ERRORE!!!
]
Poichè tu dichiari e definisci la classe game proprio nel file .cpp!
Come può quindi sapere il file .h cosa sia game?
Per risolvere il problema devi fare la dichiarazione anticipata. Praticamente nel file gun.h dopo i soliti ifndef e define, aggiugi
codice:
class Game; //dichiarazione anticipata
]
In questo modo dovrebbe compilare bene