HuntExe
Member
I'm working on a local multiplayer game, and I already coded the camera to stay in between both my players, but how would I zoom the camera in and out to keep both players in the view, like Super Smash Bros?
GML:
//Create Code:
cam = view_camera[0];
view_w_half = camera_get_view_width(cam) * 0.5;
view_h_half = camera_get_view_height(cam) * 0.5;
xTo = xstart;
yTo = ystart;
follow = oPlayer1;
shake_length = 0;
shake_magnitude = 0;
shake_remain = 0;
buff = 8;
GML:
//Step Code:
if (instance_exists(follow))
{
xTo = lerp(oPlayer1.x,oPlayer2.x,.5);
yTo= lerp(oPlayer1.y,oPlayer2.y,.5);
}
x += (xTo - x) / 8;
y += (yTo - y) / 8;
x = clamp(x,view_w_half+buff,room_width - view_w_half-buff);
y = clamp(y,view_h_half+buff,room_height - view_h_half-buff);
x += random_range(-shake_remain,shake_remain);
y += random_range(-shake_remain,shake_remain);
shake_remain = max(0,shake_remain-((1/shake_length)*shake_magnitude))
camera_set_view_pos(cam,x-view_w_half,y-view_h_half);