1. Wiso nicht als Zeiger?
Einen Zeiger nimmt man nur entgegen wenn auch "nichts" also NULL erwartet. Das kann man z.B. machen wenn man etwas berechnet und dem Nutzer ermöglichen will optionale Zusatzinformationen zur berechnung zu bekommen. Will er sie nicht übergibt er NULL. Will er sie erstellt er eine Instanz und übergibt sie als Zeiger, die so gefüllt werden kann.
Wenn eine Funktion, Methode oder ein Konstruktor also einen Zeiger erwarten, heißt das für den Nutzer, er darf auch NULL übergeben und ich denke in deinem Fall benötigst du immer eine Instanz. Würde der Nutzer sich entsprechend dieser Regel verhalten hätte das einen Fehler zur Folge, der nicht möglich wäre wenn du Referenzen erwarten würdest.
Das mit (*zeiger) ist richtig. Das nennt sich auch dereferenzieren.
Leider versteh ich nicht warum meine Welt und der Spieler nicht gerendert werden...
Können wir ohne das Projekt zu sehen leider auch nicht. Versuchs doch erstmal mit einem Minimalbeispiel ob er bei dir überhaupt Sprites zeichnet.
Übrigens solltest du den Unterstrich vor den Bezeichnern vermeiden, da Bezeichner, die mit einem Unterstrich anfangen reserviert sind. Schreibe es lieber dahinter. Z.B. "fish_".