Bonjour,
Le principe que tu utilises n´est, je pense, pas le bon.
Selon moi, tu doit créer une classe représentant ta boule de feu (classe que tu as créé contenant le constructeur).
Tu dois, grâce au constructeur initialiser ta classe (par exemple, la couleur est rouge, la place de départ est à droite de ton perso, ...), par contre, sa vitesse et son déplacement doivent être gérés par des attributs et méthodes annexes à ton constructeur.
Je m´explique un peu mieux, tu va avoir des attributs de ta classe permettant de déterminer sa vitesse de déplacement, sa position actuelle et sa direction, ces attributs vont être initialisés lors de ton constructeur.
Ensuite, tu vas avoir une méthode (update par exemple) qui va permettre à chaque appel de modifier cela (la méthode update va par exemple ajouter la valeur vitesse à la position horizontale pour faire croire que ta boule avance).
Ensuite, dans ton code courant, au moment de la création de ta boule de feu, tu créé ton objet que tu vas garder tout au long de sa vie (normalement, comme ton perso selon moi), et ensuite, à chaque calculer_la_prochaine_frame(), tu appelles ta méthode update pour mettre à jour la position de ton objet.
Idéalement ton objet boule de feu posséderait toutes les méthodes nécessaires à son cycle de vie (notion de l´objet), c´est à dire une méthode de création, de modification (update), de gestion de vie (s´il a rencontré un objet, que doit-il faire ?) , de visualisation (quelle est l´image ou la représentation de ta boule), ainsi que ces attributs propre (sa vitesse, sa position, ...).
En espérant t´avoir aidé (et pas perdu) avec mes explications.