Blossomforth icon

camera object step

Blossomforth | PRO | 07/16/16 08:14:00 AM UTC | 0 ⭐ | 10131 👁️ | Never ⏰ | []
Game Maker |

0 B

|

None

|

0 👍

/

0 👎

//Update camera coordinates.
if keyboard_check(ord('A')) x -= pan_speed;
if keyboard_check(ord('D')) x += pan_speed;
if keyboard_check(ord('W')) y -= pan_speed;
if keyboard_check(ord('S')) y += pan_speed;
 
//Update camera scale, correct out of bounds zoom scales,
//and handle directional camera movement
if mouse_wheel_down() or mouse_wheel_up() {
    if mouse_wheel_down() zoom_scale += zoom_tick;
    if mouse_wheel_up() zoom_scale -= zoom_tick;
    if zoom_scale > zoom_scale_max zoom_scale = zoom_scale_max;
    if zoom_scale < zoom_scale_min zoom_scale = zoom_scale_min;
    
    //Okay to us zoom_scale now. zoom_scale has been updated.
    
    //Ratio of mouse coordinates on window to dimensions of window.
    var x_ratio = window_mouse_get_x() / window_get_width();
    var y_ratio = window_mouse_get_y() / window_get_height();
    
    //Projected new view dimensions
    var new_width = room_width * zoom_scale;
    var new_height = room_height * zoom_scale;
    
    //Set coordinates
    x = mouse_x - (new_width * x_ratio) + (new_width / 2);
    y = mouse_y - (new_height * y_ratio) + (new_height / 2);
}
 
//finalize camera coordinates before here
 
//Check out of bounds for camera object.
if x > room_width x = room_width;
else if x < 0 x = 0;
if y > room_height y = room_height;
else if y < 0 y = 0;
 
//Update _wview and _hview to scale
view_wview[0] = room_width * zoom_scale;
view_hview[0] = room_height * zoom_scale;
 
//finalize _wview and _hview before here
 
//Update camera coordinates.
view_xview[0] = x - view_wview[0] / 2;
view_yview[0] = y - view_hview[0] / 2;
if view_xview[0] < 0 view_xview[0] = 0;
if view_xview[0] + view_wview[0] > room_width view_xview[0] = room_width - view_wview[0];
if view_yview[0] < 0 view_yview[0] = 0;
if view_yview[0] + view_hview[0] > room_height view_yview[0] = room_height - view_hview[0];

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎