M.G.
Member
Hello, I have a large room for my game, the camera always moves slightly depending on where the player is. Actually everything works perfectly.
The only problem is that the camera is not aimed at the player from the start, but first searches for him in the room. It is the same when the player is recreated at a checkpoint.
Here is the code:
obj_camera
The Creat_Event:
target_x = 0;
target_y = 0;
spd = 10
view_camera[0] = camera_create_view(0,0,256,224,0,-1,-1,-1,0,4)
The Step Event:
target_x = (oPlayer.x div camera_get_view_width(view_camera[0])) * camera_get_view_width(view_camera[0]);
target_y = (oPlayer.y div camera_get_view_height(view_camera[0])) * camera_get_view_height(view_camera[0]);
if (abs(x - target_x) < spd)
{
x = target_x;
}
else
{
if (target_x > x)
{
x += spd;
}
else if target_x < x
{
x -= spd;
}
}
if (abs(y - target_y) < spd)
{
y = target_y;
}
else
{
if (target_y > y)
{
y += spd;
}
else if target_y < y
{
y -= spd;
}
}
camera_set_view_pos(view_camera[0],x,y)
I hope someone knows the problem.
The only problem is that the camera is not aimed at the player from the start, but first searches for him in the room. It is the same when the player is recreated at a checkpoint.
Here is the code:
obj_camera
The Creat_Event:
target_x = 0;
target_y = 0;
spd = 10
view_camera[0] = camera_create_view(0,0,256,224,0,-1,-1,-1,0,4)
The Step Event:
target_x = (oPlayer.x div camera_get_view_width(view_camera[0])) * camera_get_view_width(view_camera[0]);
target_y = (oPlayer.y div camera_get_view_height(view_camera[0])) * camera_get_view_height(view_camera[0]);
if (abs(x - target_x) < spd)
{
x = target_x;
}
else
{
if (target_x > x)
{
x += spd;
}
else if target_x < x
{
x -= spd;
}
}
if (abs(y - target_y) < spd)
{
y = target_y;
}
else
{
if (target_y > y)
{
y += spd;
}
else if target_y < y
{
y -= spd;
}
}
camera_set_view_pos(view_camera[0],x,y)
I hope someone knows the problem.