Übrigens rein von der Logik her ist es falsch, CameraLocate() innerhalb von renderPlayer() zu haben, denn dann würde die Camera ja ziemlich rumspringen wenn Du 4 Player nacheinander renderst.
Sondern Du machst folgendes:
Code: Alles auswählen
Structure camera Extends movingObject
*focusedObject.movingObject
EndStructure
Global *cam.camera = AllocateMemory(SizeOf(camera))
Procedure bindCameraToObject(*o.movingObject)
*cam\focusedObject = *o
EndProcedure
Procedure updateCamera(currentTime)
setXPos(*cam, getXPos(*cam\focusedObject, currentTime) + BLABLA)
setYPos..... etc
EndProcedure
Wichtig: Benenne Deine momentanen getPlayerX und setPlayerX usw in getXPos und setXPos um, und lasse sie mit einem *o.movingObject arbeiten und nicht mit einem *p.player! Somit kannst Du sie dann mit allem verwenden (eben auch mit der Camera, die ja dann auch von einem movingObject abstammt).
Ich hoffe das ist nicht zu viel auf einmal aber eine gute Strukturierung ist halt sehr wichtig bei so einem Projekt. Wie gesagt ich arbeite grad an einem größeren Tutorial (hab schon angefangen), da werd ich solche Dinge nochmal etwas allgemeiner erklären.