Bind q to zoom-out and quit
This commit is contained in:
parent
3e2e39100a
commit
e1d5dc136e
2 changed files with 17 additions and 5 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue