Cette fonction créera une caméra "vide", c'est-à-dire: une caméra sans vue ni paramètres de projection définis. Une fois que vous avez créé la caméra, vous pouvez utiliser les différentes fonctions de la matrice pour définir la vue et les matrices de projection. Vous pouvez également utiliser cette fonction pour créer la caméra, puis utiliser les différentes camera_set_* fonctions pour configurer la vue, notez cependant que vous devez fournir au moins une position et une taille de vue, sinon la caméra résultante ne sera pas valide et donnera des résultats bizarres si elle est appliquée à un port de vue (si vous ne définissez pas l'objet, ou déplacer la vitesse, ceux-ci seront réglés sur les valeurs par défaut pour une caméra de vue dans l'éditeur de pièce).
Notez que les caméras sont comme toutes les ressources dynamiques et occuperont de la mémoire lors de leur création. Cela signifie que vous devez prendre soin de ne pas créer de caméras inutilement et de détruire celles dont vous n'avez pas besoin en appelant la fonction camera_destroy(). Cela signifie également que les caméras persisteront d'une pièce à l'autre si elles sont affectées à un global variable (elles persisteront si elles sont assignées à des variables d'instance ou locales, mais vous ne pourrez pas y accéder après avoir changé de place, d'où la fuite de mémoire), de sorte que vous pouvez créer une nouvelle caméra, par exemple, puis au début de chaque pièce, définissez la vue et les matrices de projection requises ainsi que le port d'affichage que vous devez utiliser.
camera_create();
Real (unique camera ID value)
view_camera[0] = camera_create();
var viewmat = matrix_build_lookat(640, 240, -10, 640, 240, 0, 0, 1,
0);
var projmat = matrix_build_projection_ortho(640, 480, 1.0,
32000.0);
camera_set_view_mat(view_camera[0], viewmat);
camera_set_proj_mat(view_camera[0], projmat);
Le code ci-dessus crée une nouvelle caméra et assigne son identifiant à afficher [0]. Les matrices de vue et de projection sont ensuite créées et stockées dans des variables locales avant d'être utilisées pour définir la caméra.