Add camera view mode toggle between side and top-down
This commit is contained in:
parent
9f958089c0
commit
3e13b2ecd2
5 changed files with 19 additions and 2 deletions
|
|
@ -132,6 +132,7 @@
|
|||
<div id="info">
|
||||
<kbd>Q</kbd> <span class="label">home</span><kbd>W</kbd> food<br/>
|
||||
<kbd>E</kbd> <span class="label">obstacle</span><kbd>R</kbd> erase<br/>
|
||||
<kbd>V</kbd> toggle view mode<br/>
|
||||
drag + scroll to move camera
|
||||
</div>
|
||||
<div id="gui-container"></div>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import Config from "./Config";
|
||||
import Config, { saveConfig } from "./Config";
|
||||
import GUI from "./GUI";
|
||||
import Renderer from "./Renderer";
|
||||
import StatsOverlay from "./StatsOverlay";
|
||||
|
|
@ -48,6 +48,11 @@ export default new (class App {
|
|||
this.gui.on("zoomChange", () => {
|
||||
this.scenes.screen.applyCameraZoom();
|
||||
});
|
||||
|
||||
window.addEventListener("viewModeToggle", () => {
|
||||
saveConfig();
|
||||
this.resetRenderer();
|
||||
});
|
||||
}
|
||||
|
||||
private resetRenderer() {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ const defaults = {
|
|||
brushRadius: 20,
|
||||
cameraZoom: 0,
|
||||
gravityDirection: "down" as const,
|
||||
viewMode: "side" as const,
|
||||
viewMode: "side" as "side" | "top",
|
||||
// per-channel pheromone params
|
||||
repellentFadeOutFactor: 0.0005,
|
||||
repellentBlurRadius: 0.05,
|
||||
|
|
|
|||
|
|
@ -50,6 +50,11 @@ class GUIController {
|
|||
.step(0.1)
|
||||
.listen()
|
||||
.onChange(() => this.emit("zoomChange"));
|
||||
controlsFolder
|
||||
.add(Config, "viewMode", ["side", "top"])
|
||||
.name("View mode")
|
||||
.listen()
|
||||
.onChange(() => this.saveAndEmit("reset"));
|
||||
|
||||
simFolder.open();
|
||||
controlsFolder.open();
|
||||
|
|
|
|||
|
|
@ -174,6 +174,12 @@ export default class ScreenScene extends AbstractScene {
|
|||
this.drawMode = MAT_DIRT;
|
||||
break;
|
||||
}
|
||||
case "KeyV": {
|
||||
Config.viewMode =
|
||||
Config.viewMode === "side" ? "top" : "side";
|
||||
window.dispatchEvent(new CustomEvent("viewModeToggle"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue