From d509a2cc2f291a6511afdb93cff25f0d58fad71a Mon Sep 17 00:00:00 2001 From: Fabien Freling Date: Tue, 8 Oct 2024 13:25:52 +0200 Subject: [PATCH 1/2] add flake --- flake.lock | 25 +++++++++++++++++++++++++ flake.nix | 17 +++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..f721b97 --- /dev/null +++ b/flake.lock @@ -0,0 +1,25 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1728279793, + "narHash": "sha256-W3D5YpNrUVTFPVU4jiEiboaaUDShaiH5fRl9aJLqUnU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f85a2d005e83542784a755ca8da112f4f65c4aa4", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..4272953 --- /dev/null +++ b/flake.nix @@ -0,0 +1,17 @@ +{ + description = "Cartridges"; + + outputs = { self, nixpkgs }: + let pkgs = nixpkgs.legacyPackages.x86_64-linux; + in { + devShell.x86_64-linux = with pkgs; + mkShell { + buildInputs = [ + just + lua-language-server + ]; + }; + + formatter.x86_64-linux = pkgs.nixfmt; + }; +} From 834b40e9327899556b4d003e3d3dc671988fe62c Mon Sep 17 00:00:00 2001 From: Fabien Freling Date: Tue, 8 Oct 2024 14:02:03 +0200 Subject: [PATCH 2/2] wofl: compute angle --- picotron/wolfenstein_src/main.lua | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/picotron/wolfenstein_src/main.lua b/picotron/wolfenstein_src/main.lua index 31a8f05..bb62e23 100644 --- a/picotron/wolfenstein_src/main.lua +++ b/picotron/wolfenstein_src/main.lua @@ -1,6 +1,9 @@ player = { - x = nil, - y = nil + origin = { + x= nil, + y = nil + }, + dir = nil } col_bg = 1 @@ -10,18 +13,29 @@ function _init() for i=0,31 do for j=0,31 do if mget(i,j) == 5 then -- player id - player.x = i - player.y = j + player.origin.x = i + 0.5 + player.origin.y = j + 0.5 + player.dir = math.pi / 2 break end end if (player.x) break end - print("player: ("..player.x..", "..player.y..")") + print("player: ("..player.origin.x..", "..player.origin.y..")") +end + +function cast_ray(origin, angle) + end function _draw() cls(col_bg) rectfill(0, 135, 480, 270, col_ground) + local fov = 120 -- horizontal + local angle_step=(fov / 480) / 360 * math.pi + for x=0,480-1 do + local angle = (player.dir-(fov/2) + x * angle_step) % (2 * math.pi) + local bloc, dist = cast_ray(player.origin, angle) + end -- map() end