Bind q to zoom-out and quit

This commit is contained in:
Jared Miller 2025-12-16 13:03:52 -05:00
parent 3e2e39100a
commit e1d5dc136e
2 changed files with 17 additions and 5 deletions

View file

@ -326,7 +326,7 @@ pub fn main() !void {
} else {
// manual controls
handleInput(&entities, &rng, &paused);
handleCamera(&zoom, &pan);
if (handleCamera(&zoom, &pan)) break;
}
// update
@ -468,7 +468,7 @@ fn handleInput(entities: *sandbox.Entities, rng: *std.Random, paused: *bool) voi
}
}
fn handleCamera(zoom: *f32, pan: *@Vector(2, f32)) void {
fn handleCamera(zoom: *f32, pan: *@Vector(2, f32)) bool {
const wheel = rl.getMouseWheelMove();
if (wheel != 0) {
@ -510,11 +510,23 @@ fn handleCamera(zoom: *f32, pan: *@Vector(2, f32)) void {
}
}
// reset on Return
if (rl.isKeyPressed(.enter)) {
// reset on Return or Enter
if (rl.isKeyPressed(.enter) or rl.isKeyPressed(.kp_enter)) {
zoom.* = 1.0;
pan.* = @Vector(2, f32){ 0, 0 };
}
// q: reset zoom if zoomed in, otherwise quit
if (rl.isKeyPressed(.q)) {
if (zoom.* > 1.0) {
zoom.* = 1.0;
pan.* = @Vector(2, f32){ 0, 0 };
} else {
return true; // signal to quit
}
}
return false;
}
fn clampPan(pan: *@Vector(2, f32), zoom: f32) void {

View file

@ -135,7 +135,7 @@ fn drawControls(font: rl.Font, metrics_bottom: i32) void {
"scroll: zoom",
"drag: pan (zoomed)",
"space: pause, r: reset",
"enter: reset zoom",
"q: zoom out / quit",
"tab: toggle ui",
};