camera_create

此函数将创建一个"空"相机,即:未定义视图或投影设置的相机。创建相机后,可以使用不同的矩阵函数来设置视图矩阵和投影矩阵。也可以使用此函数创建摄影机,然后使用不同的 camera_set_* 函数设置视图,但请注意必须至少提供位置和视图大小,否则生成的摄影机将无效,如果应用于视口,则会产生奇怪的结果(如果未设置以下对象,则会在 "房间编辑器" 中将这些边界或移动速度设置为视图摄影机的默认值)。

请注意,相机与所有动态资源一样,在创建时将占用内存。这意味着您需要注意不要创建不必要的相机,并通过调用函数 camera_destroy() 来销毁不需要的相机。这也意味着,如果将相机分配给全局变量,它们将在每个房间之间持续存在(当将相机分配给实例或局部变量时,它们也将持续存在,但在更换房间后无法访问它们,从而导致内存泄漏),以便您可以例如创建新相机,将其分配给全局变量,然后在每个房间的开始处设置所需的视图和投影矩阵以及需要使用的视口。

 

语法:

camera_create();

 

返回:

Camera ID

 

例子:

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);

上述代码创建了一个新的照相机并将其 ID 分配给 view[0]。然后,创建视图矩阵和投影矩阵并将其存储在局部变量中,然后再用于设置摄影机。